转载再录:
https://www.cnblogs.com/qlqwjy/p/8665871.html
首先我们利用umask查看系统的权限为四位,首位就是特殊权限位,SetUID为4,SetGID为2,t为1
[root@iz2ze46xi6pjjj69ailg9lz ~]# umask 0022
一、 s权限解读: (SetUID和SetGID)
1.SetUID权限解读(针对所属主设置s权限,数字表示为4)
SetUID:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。前提是这个文件是可执行文件,可就是具有x权限(属组必须先设置相应的x权限)。chmod命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)
- (1)设置权限的方法:
chmod u+s xxx
chmod 4777 xxx
解释:我们利用umask知道权限的设置是四位数,后三位是ugo对应的属性,首位就是特殊位权限的表示,SetUID的权限位是4,因此可以用chmod 4777 xxx设置s权限。
二、黏着位 t 解读(针对others设置,可以实现文件夹共享)
t :设置粘着位,一般针对权限是777的文件夹设置权限。如果文件设置了t权限则只有属主和root有删除文件的权限(没有意义)
如果权限为777的目录设置t权限,索引用户可以在这个目录下面创建文件和删除自己创建的文件,删除其他人创建的文件权限不被允许(当然root可以删除所有人创建的权限)。(为了共享目录,例如临时文件夹)
设置权限
chmod o+t xxx
chmod 1777 xxx
收回权限
chmod o-t xxx
chmod 0777 xxx
例1:linux的存放临时文件夹的tmp目录就有t权限:
[root@iz2ze46xi6pjjj69ailg9lz /]# ll / | grep tmp drwxrwxrwt. 11 root root 4096 Mar 30 13:13 tmp
三、i与a权限解读
参考:http://www.cnblogs.com/qlqwjy/p/8358917.html
i:不可修改权限 例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。
a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限