【Linux】chmod修改文件权限

在Linux系统中输入chmod -- help 输出如下:

lilinchuan@lilinchuan-VPCEA27EC:~$ chmod --help
用法:chmod [选项]... 模式[,模式]... 文件...
 或:chmod [选项]... 八进制模式 文件...
 或:chmod [选项]... --reference=参考文件 文件...
将每个文件的模式更改为指定值。

  -c, --changes        类似 --verbose,但只在有更改时才显示结果
      --no-preserve-root    不特殊对待根目录(默认)
      --preserve-root        禁止对根目录进行递归操作
  -f, --silent, --quiet    去除大部份的错误信息
  -v, --verbose        为处理的所有文件显示诊断信息
      --reference=参考文件    使用指定参考文件的模式,而非自行指定权限模式
  -R, --recursive        以递归方式更改所有的文件及子目录
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

每种 MODE 都应属于这类形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。

总结一下用法就是

chmod 【options】 mode filename

options可以有可以没有,就是上边的-c,-f什么的。

主要说明mode的写法,一开始我没弄清楚,到后来才知道mode有两种写法

第一种是用户+操作符+权限的书写方式,第二种是用数字表示。

用户有 ‘u’,‘g’,‘o’,‘a’可选,操作符有‘+’,‘-’,‘=’可选,权限有‘r’,‘w’,‘x’,‘s’,‘t’,‘u’,‘g’,‘o’可选。

u,g,o,a分别表示用户属主,群组,其他用户,所有用户(默认),操作符意思分别是增加,删除和赋值权限,权限中r是读,w是写,x是可执行

用数字表示的方法一般有一个三位数构成,第一位表示属主的权限,第二位表示相同群组用户的权限,第三位表示其他用户权限。

r:4,w:2,x:1,那么5(=4+1)当然就是读和可执行权限啦,7(=4+2+1)就是读写可执行权限。

当然有时候也有四位数,四位数时的最高位取值也是4,2,1,含义分别是

4,执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户。

2,执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户。

1,设置粘着位。

粘着位是为了防止其他非属主用户有了写权限后将文件删除的。

举例来说

$chmod a+x filename   是对所有用户赋予filename文件的可执行权限

$chmod +x filename     省掉了默认的a,所以作用同上,这是经常能见到的一种写法

$chmod 755 filename  对属主赋予全部权限,其他用户只有读和执行的权限。

$chmod =r file                     为所有用户分配读权限

$ chmod 444 file                   同上例

$ chmod a-wx,a+r   file          同上例

$ chmod -R u+r directory           递归地给directory目录下所有文件和子目录的属主分配读的权限

$ chmod 4755                            设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。




你可能感兴趣的:(linux,权限,chmod)