Chmod

chmod是一条在Unix系统中用于控制用户对文件的权限的命令（change mode单词前缀的组合）和函数。只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式（八进制数字模式），符号模式指定文件的权限。

用法 
chmod使用语法舉例：
 $ chmod [options] mode[,mode] file1 [file2 ...]
使用ls命令的查看文件或目录的属性
 $ ls -l file

八进制语法 
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制，每三位为一组，它们分别是文件所有者（User）的读、写、执行，用户组（Group）的读、写、执行以及其它用户（Other）的读、写、执行。历史上，文件权限被放在一个比特掩码中，掩码中指定的比特位设为1，用来说明一个类具有相应的优先级。

例如， 765 将这样解释：

 所有者的权限用数字表达：属主的那三个权限位的数字加起来的总和。如rwx ，也就是4+2+1 ，应该是7。
 用户组的权限用数字表达：属组的那个权限位数字的相加的总和。如rw- ，也就是4+2+0 ，应该是6。
 其它用户的权限数字表达：其它用户权限位的数字相加的总和。如r-x ，也就是4+0+1 ，应该是5。

例如，修改文件myfile的权限 
 $ chmod 664 myfile
 $ ls -l myfile
 -rw-rw-r--  1   57 Jul  3 10:13  myfile

符号模式 
使用符号模式可以设置多个项目：who（用户类型），operator（操作符）和permission（权限）,每个项目的设置可以用逗号隔开。
命令chmod将修改who指定的用户类型对文件的访问权限，用户类型由一个或者多个字母在who的位置来说明,如who的符号模式表所示:

operator的符号模式表:

permission的符号模式表:

例子：

chmod u+x filename
在这里，u的意思是user指用户本人；+的意思是增加权限；x是指文件执行权限

符号模式实例 
对目录的所有者u和关联组g增加读r和写w权限:
 $ chmod ug+rw mydir
 $ ls -ld mydir
 drw-rw----   2 unixguy  uguys  96 Dec 8 12:53 mydir
对文件的所有用户ugo删除写w权限:
 $ chmod a-w myfile
 $ ls -l myfile
 -r-xr-xr-x   2 unixguy  uguys 96 Dec 8 12:53 myfile
对mydir的所有者u和关联组g设置成读r和可执行x权限:
 $ chmod ug=rx mydir
 $ ls -ld mydir
 dr-xr-x---   2 unixguy  uguys 96 Dec 8 12:53 mydir

特殊模式 
参看: 文件系统权限

命令使用实例

函数说明 
chmod函数C语言的定义:

 int chmod(const char *path, mode_t mode);

函数使用mode_t类型的参数，使用其比特位组成各种模式:

模式进行按位或运算对应期望的权限。

函数检验的错误以及相应的错误码在man page有定义。

参考文献 
 Linux命令，编辑器与Shell编程，清华大学出版社，ISBN 987-7-302-13944-7

外部链接 
 Linux 文件和目录的属性
 chmod — manual page from GNU coreutils.
 GNU "Setting Permissions" manual
 Solaris 9 chmod man page
 Mac OS X chmod man page, which also supports access control lists.
 CHMOD-Win 3.0 — Freeware Windows' ACL ←→ CHMOD converter.
 What CHMOD? File Permissions Calculator, web-based CHMOD calculator.
 Beginners tutorial with on-line "live" example
 chmod examples Searchable examples 

标准Unix程序
Unix文件系统相关软件
Unix SUS2008实用工具