在 Linux 命令中,chmod
用于修改文件或者目录的权限。对于文件或者目录的普通权限,共有 3 种,分别为:
r
:读取;w
:写入;x
:执行。
此外,还有 3 种特殊权限,分别为:
suid
:Set User ID;sgid
:Set Group ID;sticky
:粘滞位。
在此,我们仅介绍如何利用chmod
修改文件及目录的普通权限。
权限范围及代号
文件及目录的权限范围,包括:
u
:User,即文件或目录的拥有者;g
:Group,即文件或目录的所属群组;o
:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;a
:All,即全部的用户,包含拥有者、所属群组以及其他用户。
权限的代号包括:
r
:读取权限,数字代号为4
;w
:写入权限,数字代号为2
;x
:执行或切换权限,数字代号为1
;-
:不具任何权限,数字代号为0
;s
:当文件被执行时,根据who
参数指定的用户类型设置文件的setuid
或者setgid
权限。
语法及选项说明
chmod
语法:chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]
chmod [-cfRv][--help][--version][数字代号][文件或目录...]
chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
选项说明:
-c
或--changes
:效果类似-v
参数,但仅返回更改的部分;-f
或--quiet
或--silent
:不显示错误信息;-R
或--recursive
:递归处理,将指定目录下的所有文件及子目录一并处理;-v
或--verbose
:显示指令执行过程;--help
:显示在线帮助信息;--reference=<参考文件或目录>
:把指定文件或目录的权限全部设成和参考文件或目录的权限相同;--version
:显示版本信息;<权限范围>+<权限设置>
:开启权限范围的文件或目录的该项权限设置;<权限范围>-<权限设置>
:关闭权限范围的文件或目录的该项权限设置;<权限范围>=<权限设置>
:指定权限范围的文件或目录的该项权限设置。
示例
首先,我们来看看文件的相关权限: