用途:更改文件的权限
用法:chmod [选项]... mode1,mode2,... 文件...
或chmod [选项]... 八进制模式 文件...
或chmod [选项]... --reference=参考文件 文件...
mode是关于文件权限的设定字符串,格式形如 [ugoa][+-=][rwxXst] ,下面为详细解释
Linux中用户对文件具有三种身份和六种权限,三种身份为:
1. u:文件所有者(owner)
2. g:文件所属用户组(group)
3. o:其他用户(others)
a:代表以上三种身份的集合,即所有人
对于每种身份,文件又有三种基本权限和三种特殊权限:
1. r:可读(read)
2. w:可写(write)
3. x:可执行(execute)
特殊权限:
4. SUID:s位于文件所有者的x位上,仅对二进制程序有效,当执行者拥有x权限时,在执行过程中会具有文件所有者的权限
5. SGID:s位于文件所属组的x位上,对二进制程序和目录有效,当程序执行者拥有x权限时,在程序执行过程中会具有文件所属组的权限;当用户对目录有r和x权限时,用户在此目录下的有效用户组将变成该目录的所属用户组
6. SBIT:t位于others的x位上,仅对目录有效,当用户对此目录有w和x权限时,其在此目录下创建的文件仅自己和root可以删除
参数:
-c 类似--verbose 只有更改时才显示结果
-f 不显示错误信息
-v 显示处理过程
-R 以递归的方式处理所有文件及子目录
以数字形式改变文件权限
常见文件权限格式如:-rwxr-x-r-x 一共10个字符,第一个字符表示该文件是目录,文件或者链接文件等,后面9个字符每3个为一组,分别对应owner,group,others三种对象的rwx权限,每组权限可以用数字来代替,其中
r = 4
w = 2
x = 1
每组权限对应的数字为三种权限之和,如rwx为7,r-x为5,--x为1,---为0
故用数字形式改变文件权限的命令格式为
chmod 权限 文件
该形式为chomod命令最常用的格式,可以应付几乎所有情形
以字符形式改变文件权限
字符形式可以单独对文件对某种身份的权限进行修改,而且不必去计算对应的数字,格式为:
chmod [对象][+-=][权限] 文件...
典型用法:
1. 将文件设置为所有人可读可写可执行
chmod 777 文件
或者 chmod a+r,a+w,a+x 文件
2. 给某文件添加权限使同一用户组的用户可执行
chmod g+x 文件
3. 将文件设置为仅文件所有者可执行
chmod 100 文件
4. 将某目录下的所有文件及目录设置为所有人可读可执行
chmod -R 555 目录
设置特殊权限:
设置基本的rwx权限只需要三位数字,如果要设置特殊权限则需要四位数字,其中第一位数字代表其特殊权限
4为SUID
2为SGID
1为SBIT
5. 某二进制程序的所有者是root,该程序在执行过程中需要更改某个数据库文件,而该数据库文件仅root有写的权限,若要某个其他帐号能够正常使用该程序,则需为该程序文件设置SUID权限
chmod 4755 二进制文件
执行完成后该文件的权限应该是 -rwsr-xr-x
6. 将某个目录设置成所有人可以访问,同时任何人在上面创建的文件其他人也可以*修改,此时应为该文件夹设置SGID权限,使得任何人进入该目录后获得目录所属用户组的权限
chmod 2771 目录
7. 将某个目录作为大家的共享存储目录,但每个人的文件只有自己可以修改,此时需为该目录设置SBIT权限
chmod 1777 目录