chmod命令详解
linux有三种类型的用户需要访问文件或文件夹,分别是:文件所有者、文件所有者所在组的其他用户、其他用户,每种类型的用户都有三种访问权限,分别是:读取(r)、写入(r)、运行(x),综合起来,一个文件需要有9种访问权限,chmod语法如下:
chmod[用户]操作(+或-或=)权限文件或目录
其中用户默认为a(所有用户),红色字体为一种模式(mod),mod可以有多个,用逗号分隔开,文件或目录可以用匹配符,如下示例:
chmod+x*.sh
给所有用户对shell脚本增加执行权限(否则脚本无法执行,报“没有权限”错误)
chmod+xjdk*.bin
给所有用户对jdk安装程序增加执行权限
chmod+xjdk-6u20-linux-i586-rpm.bin
给所有用户对jdk安装文件增加执行权限
chmodu-wx,g+w,o=rwfile
文件所有者去掉写入和运行权限
用户所在组的其他用户增加写入权限
其他用户替换为读取和写入权限
参数:-R
递归设置子目录或文件的权限
chmod-Ru-wx,g+w,o=rwfile
注意:
1、x权限的含义,对于文件是执行权限,对于目录是搜索权限
2、s设置用户(或组)的ID号;t设置粘着位(stickybit),防止文件或目录被非属主删除
如:chmodu+t,g-sfile
实际使用chmod命令的时候,往往使用另外一种方式进行,也就是把这9位权限按照3个一组分一个,变成3个八进制数,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限;还可设置第四位,它位于三位权限序列的前面,第四位数字取值是4,2,1,代表意思如下:4,执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户;2,执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户;1,设置粘着位,如下示例:
chmod777file
相当于
chmodu+rwx,g+rwx,o+rwxfile
给所有用户对file文件设置读取、写入、运行权限