简介

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