linux文件权限总结
总结一下:
>ls -l test
-r--r-xrw- 1 dec users 30 2010-09-07 11:56 test
文件的权限8进制表示是456,文件所属者dec,文件所属组users
注意{users组的用户}可能包含dec,也可能不包含,也就是dec用户所在的组并不代表test文件的所属组,有的题目和文章把users说成是test所属者所在的组是错误的。
先定义一下集合差操作
{a,b,c}-{b}={a,c}
{a,b}-{a,c}={b}
对应这个test文件:
{dec}权限是r--
{users组的用户}-{root,dec}权限是r-x
{所有用户}-{users组的用户}-{root,dec}的权限是rw-
{root}这个集合里面的用户是什么权限呢?root只能保证有r权限,至于w和x,必须至少一个其它的用户有这种权限,root才可以有。当然root可以通过chmod来获得相应的权限。本例中的test不是一个目录,如果是目录,即便访问权限是000,root也对该目录有执行权限。
把上述四个集合相加,正好=={所有用户},而且这四个集合是绝对没有交集的,不会有歧义。
ps1:关于执行权限,假设/tmp/a/b,普通用户dec对b有执行权限,对a没有执行权限,那么dec不能执行b,即便他已经cd到了/tmp/a也不行
ps2:对目录来说,读权限决定了是否可以在该目录下ls,写权限决定了是否可以在目录进行修改:还是以/tmp/a/b为例, 如果dec对a的权限是--x,对b是rwx,那么在目录/tmp/a下执行ls会报错,执行cd b没有问题,执行cp -r b /tmp没有问题,mv b /tmp则会报错,因为mv会试图删掉b,删掉b视为对a造成了修改