本文出自 http://blog.csdn.net/shuangde800
---------------------------------------------------------------------------------
默认权限
- 每一个终端都拥有一个umask属性,来确定新建文件和文件夹的默认权限
- umask使用数字权限方式来表示,如022
- 目录的默认权限是:777-umask
- 文件的默认权限是:666-umask
- 一般,普通用户的默认umask是002,root用户的默认umask是022
- 也就是说,对于普通用户来说:
新建文件的权限是:666-002 = 664
新建目录的权限是:777-002 = 775
- 命令umask用以查看设置umask值
$ umask 查看当前的umask值。(会看到有4位,后面讲)
$ umask 022 把当前的umask值甚至为022
特殊权限
除了普通权限,还有特殊权限
用命令umask,会看到有4位,每一位占3bit,所以Linux权限二进制共有12位,UGO占了后9位, 开头的3位是特殊权限。
权限 | 对文件的影响 | 对目录的影响 |
suid | 以文件的所属目录身份执行,而非执行文件的用户 | 无 |
sgid | 以文件所属组身份执行 | 该目录中创建的任意新文件的所属组与该目录的所属组相同 |
sticky | 无 | 对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件 |
例如:
$ ls -l /usr/bin/passwd
显示:
-rwsr-xr-x 1 root root 41284 Apr 9 2012 /usr/bin/passwd
U权限的x位变成了s,说明这个文件是suid权限
设置特殊权限
设置suid: $ chmod u+s test
设置sgid: $ chmod g+s test
设置sticky: $ chmod o+t test
与普通权限一样,特殊权限也可以使用数字方式表示
-SUID = 4
-SGID = 2
-Sticky = 1
所以,我们可以通过以下命令设置:
$ chmod 4755 test