Linux chmod 命令 - 改变文件权限
介绍
chmod(英文全拼:change mode)是 Linux 系统中用于改变文件权限的一个命令。对于文件或者目录的普通权限,共有 3 种,分别是 r(读取)、w(写入)和 x(执行)。chmod 是 Linux 系统中关于权限的重要命令之一,另外一个是 chown
命令。
语法:
chmod [who] [operator] [permission] FILE...
chmod [OPTION]... OCTAL-MODE FILE...
选项:
-c
:若该文件权限确实已经更改,才显示其更改动作。-f
:若该文件权限无法被更改也不要显示错误讯息。-v
:显示权限变更的详细资料。-R
:对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)。
每个模式字符串都应该匹配如下格式:[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+
。
其中,who 包含的选项及其含义:
u
:文件属主权限(Owner)g
:属组用户权限(Group)o
:其他用户权限(Other Users)a
:所有用户(文件属主、属组用户及其他用户)
operator 包含的选项及其含义:
+
:增加权限-
:取消权限=
:设定权限
permission 包含的选项及其含义:
r
:读权限w
:写权限x
:执行权限s
:文件属主和组 set-IDt
:粘性位 *l
:给文件加锁,使其他用户无法访问
另外,权限也可以使用“八进制模式”来描述,针对文件属主、属组用户及其他用户,均可用 rwx 表示,组成一个八进制数字。
每个数字代表一种权限:
r (read) | w (write) | x (execute) | - |
---|---|---|---|
读权限 | 写权限 | 可执行权限 | 没有权限 |
4 | 2 | 1 | 0 |
这样就会产生 8 x 8 x 8 = 256 种权限组合,例如:
400
文件属主可读200
文件属主可写100
文件属主可执行040
属组用户可读020
属组用户可写010
属组用户可执行004
其他用户可读002
其他用户可写001
其他用户可执行777
所有用户可读可写可执行
示例
下面以文件 getiot 为例说明。
赋予文件属主执行权限:
chmod u+x getiot
赋予属组用户写权限:
chmod g+w getiot
赋予属组用户和其他用户执行权限:
chmod go+x getiot
收回所有用户的执行权限:
chmod a-x getiot
收回属组用户和其他用户的写权限:
chmod og-w getiot
将文件权限修改为 755:
chmod 755 getiot
将 /temp 目录下的所有文件权限修改为 755:
chmod -R 755 getiot