Linux chmod命令详解
简介
chmod
命令用来变更文件或目录的权限。
Linux一般有三种身份:
u
:文件的拥有者g
:文件所属的群组o
:其他用户
四种权限:
r
:读取文件的权限(read),数字代号是4
w
:写入文件的权限(write),数字代号是2
x
:执行的权限(execute),数字代号是1
s
:特殊权限
语法
chmod [options] mode files
只能文件属主或特权用户才能使用该功能来改变文件存取模式。
- mode可以是数字形式,比如:
chmod 777 files
每一个数字对应着文件的拥有者、所属群组以及其他用户的权限,数字的值即为权限数字代号相加的值。
- mode可以是字符形式,此时要指定用户名(没有指定为默认值,为a,所有用户),如果有多个用户,则用逗号分开,如:
chmod user1+rwx, user2+rwx files
其中options可以有以下取值:
-c,--changes
只输出被改变文件的信息-f,--silent,--quiet
当chmod不能改变文件模式时,不通知文件的用户--help
输出帮助信息。-R,--recursive
可递归遍历子目录,把修改应到目录下所有文件和子目录--reference=filename
参照filename的权限来设置权限-v,--verbose
无论修改是否成功,输出每个文件的信息--version
输出版本信息。
权限操作符
一共有三种权限操作符号:
+
增加权限-
删除权限=
重新分配权限
实例
# 给file的属主增加执行权限
chmod u+x file
# 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod 751 file
# 同上
chmod u=rwx,g=rx,o=x file
# 为所有用户分配读权限
chmod =r file
# 同上
chmod 444 file
# 同上
chmod a-wx,a+r file
# 递归地给directory目录下所有文件和子目录的属主分配读的权限
chmod -R u+r directory
# 删除其他用户的执行权限
chmod o-x file