一、 更改文件9个属性:chmod

用这个命令修改文件属性有两种方式:数字或者符号

1. 数字类型改变文件权限 chmod

(1)类unix系统的文件有9个属性分别是owner/group/others 的read/write/excute 属性,这9个属性中3个为一组,可以用数字来表示各个属性:

r:4

w:2

x:1

每个权限代表一个数字,将同一组的3个权限累加,就是这一组权限的数字表示方式,

例如当文件属性是[-rwxrw-r--]时:

Owner:  4+2+1=7(rwx)

Group:  4+2+0=6(rw)

Others: 4+0+0=4(r)

因此该文件的属性用数字来表示就是764了。

(2)语法:chmod [-R] xyz filename

xyz:数字类型的权限属性,也就是rwx所代表数字的和

-R: 进行递归的持续修改,常用于修改某一目录

(3)例子。假定有一个名为test的文件,具有如下权限:

-rw-rw-r-- 1 root root  165 Nov 18 15:53 test

现在希望拥有者对该文件可读、写和执行,root组用户对该文件只读,其他人没有权限,可以键入:

$chmod 740 test

$ls -l

-rwxr----- 1 root root  165 Nov 18 15:53 test

 

2. 符号类型改变文件权限

(1) chmod命令的一般格式为:

chmod [who] operator [permission] filename

who的含义是:

u 文件属主权限。

g 属组用户权限。

o 其他用户权限。

a 所有用户(文件属主、属组用户及其他用户)。

operator的含义:

+ 增加权限。

- 取消权限。

= 设定权限。

permi ssion的含义:

r 读权限。

w 写权限。

x 执行权限。

s 文件属主和组set-ID。

t 粘性位*。

l 给文件加锁,使其他用户无法访问。

(这里只关注r、w、x权限,其他的后面解释)

(2) 例子:当创建test文件时,它具有这样的权限:

-rw-r--r-- 1 root root  165 Nov 18 15:53 test

如果要使属主和属组用户具有有执行权限,并取消其他用户的写权限,可以用:

$ chmod ug+x test

$ chmod o-w test

-rwxr-xr-- 1 root root  165 Nov 18 15:53 test

最后将属组的属性设置为rwx,其他人的属性设置为rw

$ chmod g=rwx,o=rw test (g=rwx,o=rw是在一起的,中间没有空格)

-rwxrwxrw- 1 root root  165 Nov 18 15:53 test

二、 更改文件拥有者chown

当你创建一个文件时,你就是该文件的属主。一旦你拥有某个文件,就可以改变它的所有权,把它的所有权交给另外一个/etc/passwd文件中存在的合法用户。可以使用用户名或用户ID号来完成这一操作。

在改变一个文件的所有权时,相应的suid也将被清除,这是出于安全性的考虑。只有文件的属主和系统管理员可以改变文件的所有权。一旦将文件的所有权交给另外一个用户,就无法再重新收回它的所有权。如果真的需要这样做,那么就只有求助于系统管理员了。

1. chown命令的一般形式

chown  [--cfhvR]  owner  file


2. 例子

# ls -l

drwxrwxr-x  2 sam  sam  4096 10月 26 19:48 sam

# chown gem sam

# ls –l

drwxrwxr-x  2 gem  sam  4096 10月 26 19:48 sam

文件sam的所有权现在由用户sam交给了用户gem。也可以将属主与属组一起修改:

# chown gem:gem sam

# ls –l

drwxrwxr-x  2 gem  gem  4096 10月 26 19:50 sam

三、 更改所属用户组chgrp

chgrp命令和chown命令的格式差不多,下面给出一个例子:

# ls -l

drwxrwxr-x  2 gem  sam  4096 10月 26 19:48 sam

# chgrp group sam

# ls -l

drwxrwxr-x  2 gem  group  4096 10月 26 19:48 sam

一般来说再将文件复制给另外一个用户的时候需要修改文件的所属者,不然那个用户无法打开这个文件。

四、 找出你或者其他人所属的用户组

如果你希望知道自己属于哪些用户组,可以用ID这个命令:

# su sam

$ id

uid=506(sam) gid=4(adm) groups=4(adm)

如果想看其他人的用户组,用#id 用户名,如:

# su sam

$ id gem

uid=507(gem) gid=507(group) groups=507(group),0(root),4(adm)

五、参考

1. 《shell十三问》

(完)

linux系统如何更改文件权限的更多相关文章

  1. linux系统中的文件权限详解(转)

    一.在<Linux系统中如何查看文件属性>中介绍了通过ls指令来查看文件的属性,具体如下: [命令] letuknowit@ubuntu:/$ cd /tmp letuknowit@ubu ...

  2. Linux系统用户/用户组/文件权限相关

    目录一.Linux系统用户/用户组权限相关二.Linux系统文件权限相关 一.Linux系统用户/用户组权限相关 .命令:usermod 用法:usermod [-agGus] user args ‘ ...

  3. linux中chmod更改文件权限命令

    1. 命令格式: chmod [-cfvR] [--help] [--version] mode file 2. 命令功能: 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3. 命令参 ...

  4. 解决linux下sudo更改文件权限报错xxxis not in the sudoers file. This incident will be reported.

    本文转自Linux社区作者为z-sm的文章 原文链接http://www.linuxidc.com/Linux/2016-07/133066.htm 之前一直使用的是ubuntu,后来安装了Cento ...

  5. Linux系统中的文件权限

    r(read)         4    可读 w(write)   2     可写 x()           1     可执行 644            755 rw-r-r        ...

  6. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  7. Linux更改文件权限(二)

    更改文件权限(二)============================== (参考于千锋教育教学笔记) 命令umask [root@aminglinux ~]# umask 0022 [root@ ...

  8. Linux更改文件权限(一)

    更改文件权限(一)============================== (参考于千锋教育教学笔记) 设置权限 1.更改文件的属主.属组chown (change owner)[root@ami ...

  9. linux 更改文件权限命令 chmod

    chmod -change file mode bits :更改文件权限 chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限. 更改文件权限的2种方式: 一 ...

随机推荐

  1. wordpress缓存插件使用提高网站速度

    WordPress是世界上使用量最多的CMS,由于程序非常吃主机性能,正常情况下当页面被访问时,使用php和mysql. 因此,系统需要消耗RAM和CPU. 如果同一时间有大量访客访问,系统将使用大量 ...

  2. apache编译参数详解

    常用编译参数: ./configure     //配置源代码树–prefix=/usr/local/apache    //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录.–e ...

  3. coding 绑定腾讯云开放平台注意事项

    coding升级后需要绑定腾讯云开放平台,按照coding文档的提示操作就好 1.创建腾讯云平台后,不要自定义邮箱和用户名 2.直接绑定原来我们使用的coding账号即可 绑定成功后,邮箱和用户名会自 ...

  4. C++代码规范之命名

    C++代码规范之命名 一.命名的两个基本原则 1.含义清晰,不易混淆: 2.不和其它模块.系统API的命名空间相冲突. 二.命名通则 1.在所有命名中,都应使用标准的英文单词或缩写:不得使用拼音或拼音 ...

  5. Redis:目录

    ylbtech-Redis:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回顶部   ...

  6. Hive中的用户自定义函数UDF

    Hive中的自定义函数允许用户扩展HiveQL,是一个非常强大的功能.Hive中具有多种类型的用户自定义函数.show functions命令可以列举出当前Hive会话中的所加载进来的函数,包括内置的 ...

  7. c++ 双向链表操作总结

    第一.包含DoubleLinkNode 模板类和DoubleLinkList 模板类 #pragma once #include<iostream> using namespace std ...

  8. isset ,empty,is_null 区别

    <?php $a = ''; $b = ""; $c = null; $d = array(); $e = ' '; $f = 0; $g = "0"; ...

  9. Linux 之 利用Google Authenticator实现用户双因素认证

    一.介绍:什么是双因素认证 双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统.双因素认证是一种采用时间同步技术的系统,采用了基于时间.事件和密钥三变量而产 ...

  10. 带你剖析淘宝TDDL——Matrix层的分库分表配置与实现

    前言 在开始讲解淘宝的TDDL(Taobao Distribute Data Layer)技术之前,请允许笔者先吐槽一番.首先要开喷的是淘宝的社区支持做的无比的烂,TaoCode开源社区上面,几乎从来 ...