Linux chmod命令详解
简介
chmod命令用来变更文件或目录的权限。
Linux一般有三种身份:
u:文件的拥有者g:文件所属的群组o:其他用户
四种权限:
r:读取文件的权限(read),数字代号是4w:写入文件的权限(write),数字代号是2x:执行的权限(execute),数字代号是1s:特殊权限
语法
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