对于root用户来说几乎没有权限限制。而普通用户受权限的限制。
当我们用命令ls -l
显示该目录的内容的时候。会发现前面有一堆字符。如:
下面我们就解释一它们的意思:
拥有者:这个文件或者目录是谁的。
所属组:属于哪一个组。
第一个字符:
d
:表示目录。-
:表示普通文件。
后面九个字符(3个为一组):r
表示读权限w
表示写权限x
执行权限
第一组的3个:是拥有者的权限
第二组的3个:是所属组的权限
第三组的3个:是其他人的权限
u
:改变拥有者的权限
g
:改变所属组的权限
o
:改变其他人(other)的权限
也可以用8进制的方法进行改变
rwx
:如果想让哪一位有权限就为1,不想给权限就是0。(此时的1,0为二进制的)
最后每组用8进制表示就行。
chown
:改变拥有者
chgrp
:改变所属组
改变这些权限需要root
权限。
进入一个目录需要什么权限呢?r w x ?
答案是需要x
权限。
但是在里面创建文件需要w
的权限
目录的起始权限为777,普通文件的其实权限是666。那为什么和我们显示的不一样呢?
就是因为有umask
的原因,umask
中的权限都不应该在最终的权限中显示。
我的umask
是0002。
更改umask
此时新创建的hh文件就和原来的不一样了。
那么,从上面的结果显示,最终的权限是起始权限减umask的结果吗?答案当然不是。
它是位运算。最终的权限=起始权限&(~umask)
粘滞位
我们知道,不同的用户在同一个工作目录下可以删除别人创建的目录或者文件。
但是我们自己创建的文件不想他人删除,怎么办呢?可以设置粘滞位。chmod +t 目录名
创建一个共享目录mytmp
,所以权限都放开
我们有2个用户,分别位temp,和ML。
从下面的图片中可以看出,在自己的工作目录下可以删除别人的文件
加上粘滞位之后,就不可以删除别人的文件了。