文章目录
- 一、命令介绍
- 二、语法格式
- 三、常用选项
- 四、权限表达式
- (一)采用权限字母和操作符表达式
- (二)采用权限数字表达式
- 五、参考示例
- (一)为拥有者、所属群组以及其他人添加关于directory1的读、写和执行权限
- (二)删除群组与其他人对 directory1 目录的读、写、执行权限
- (三)为文件 f01 设置拥有者可以执行,所属群组可以写入的权限
- (四)为文件 f01 设置拥有者可读可写可执行,所属群组可读可写,其它用户可读的权限
- (五)对文件 f01 设置所有用户可执行属性
- (六)将 /home/wwwroot/ 里的所有文件和文件夹设置为755权限
- (七)将当前目录下的所有文件与子目录设为任何人可读取
- 六、扩展知识
一、命令介绍
chmod 命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令,但是只有文件的属主和超级用户 root 才能执行这个命令。
在 UNIX 系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。
二、语法格式
chmod <选项> <参数>
参数:
- 指定文件的权限模式;
- 要改变权限的文件。
三、常用选项
选项 | 说明 |
---|---|
u | 操作对象简称,用户user,文件或目录的所有者。 |
g | 操作对象简称,同组用户group,文件或目录所属群组 |
o | 操作对象简称,其它用户others |
a | 操作对象简称,所有用户all,系统默认使用此项 |
+ | 权限操作符,添加权限 |
- | 权限操作符,取消权限 |
= | 权限操作符,设置文件的权限为给定的权限 |
r | 权限设定(英文),表示可读权限,数字代号为“4” |
w | 权限设定(英文),表示可写权限,数字代号为“2” |
x | 权限设定(英文),表示可执行权限,数字代号为“1” |
- | 权限设定(英文字符),表示没有权限,数字代号为“0” |
X | 权限设定,如果目标文件是可执行文件或目录,可给其设置可执行权限 |
s | 权限设定,设置权限suid和sgid,使用权限组合“u+s”设定文件的所有者的ID位,“g+s”设置文件所属组的ID位 |
t | 权限设定,只有目录或文件的所有者才可以删除目录下的文件 |
-c 或 --changes | 效果类似“-v”参数,若该文件权限确实已经更改,才显示其更改动作 |
-f 或 --quiet 或 --silent | 操作过程中不显示任何错误信息 |
-R 或 --recursive | 递归处理,以递归的方式逐个变更,将指令目录下的所有文件及子目录一并处理(对目前目录下的所有文件与子目录进行相同的权限变更) |
-v 或 --verbose | 显示命令运行时的详细执行过程 |
–reference=<参考文件或目录> | 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同 |
<权限范围>+<权限设置> | 开启权限范围的文件或目录的该选项权限设置 |
<权限范围>-<权限设置> | 关闭权限范围的文件或目录的该选项权限设置 |
<权限范围>=<权限设置> | 指定权限范围的文件或目录的该选项权限设置 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
四、权限表达式
(一)采用权限字母和操作符表达式
授权对象:
⑴ 拥有者,代表字母 u ,user 的缩写
⑵ 所属群组,其实就是拥有者所在的群组,代表字母 g,group 的缩写
⑶ 其他人,代表字母 o,other 的缩写
权限字母符号:
⑴ 读,代表字母 r,read 的缩写
⑵ 写,代表字母 w,write 的缩写
⑶ 执行,代表字母 x,execute 的缩写
(二)采用权限数字表达式
权限数字:
⑴ 4=r,读取
⑵ 2=w,写入
⑶ 1=x,执行
权限组合:
⑴ 5=4+1=rx,表示可读可执行
⑵ 6=4+2=rw,表示可读可写
⑶ 7=4+2+1=rwx,表示可读可写可执行
命令 chmod
后面的数字表示不同用户或用户组的权限。一般是三个数字:
⑴ 第一个数字表示文件所有者的权限
⑵ 第二个数字表示文件所属用户组的权限(其实就是与文件所有者同属一个用户组的其他用户的权限)
⑶ 第三个数字表示其它用户组的权限(其实就是不在文件所有者所在的用户组的其他用户的权限)
举个例子:
执行命令 chmod 755
,设置用户的权限为:
⑴ 设置文件所有者的权限为 7,就是“可读可写可执行”
⑵ 设置文件所属用户组的权限为 5,即设置与文件所有者同属一个用户组的其他用户的权限为 5,就是“可读可执行”
⑶ 设置其它用户组的权限为 5,也是“可读可执行”
特别例子:
chmod 4755
与 chmod 755
的区别在于开头多了一位,这个 4 表示其他用户执行文件时,拥有与所有者相当的权限。
五、参考示例
(一)为拥有者、所属群组以及其他人添加关于directory1的读、写和执行权限
[root@linuxcool ~]# chmod ugo+rwx directory1
或者
[root@linuxcool ~]# chmod 777 directory1
第一个 7 表示所有者的权限是 rwx,第二个 7 表示所属组的权限也是 rwx,第三个 7 表示其他用户的权限也是 rwx。
(二)删除群组与其他人对 directory1 目录的读、写、执行权限
[root@linuxcool ~]# chmod go-rwx directory1
(三)为文件 f01 设置拥有者可以执行,所属群组可以写入的权限
[root@linuxcool ~]# chmod u+x,g+w f01
(四)为文件 f01 设置拥有者可读可写可执行,所属群组可读可写,其它用户可读的权限
[root@linuxcool ~]# chmod u=rwx,g=rw,o=r f01
上面的权限修改命令等同于下面的命令:
[root@linuxcool ~]# chmod 764 f01
(五)对文件 f01 设置所有用户可执行属性
[root@linuxcool ~]# chmod a+x f01
(六)将 /home/wwwroot/ 里的所有文件和文件夹设置为755权限
[root@linuxcool ~]# chmod -R 755 /home/wwwroot/* # -R 递归处理
(七)将当前目录下的所有文件与子目录设为任何人可读取
[root@linuxcool ~]# chmod -R a+r *
六、扩展知识
Linux 系统中,预设的情況下,系统中所有用户的相关信息都是记录在 /etc/passwd
文件中。每个人的密码则是记录在 /etc/shadow
文件下。 所有的组群名称记录在 /etc/group
内。