在刚开始学习linux是可能对于linux下的权限问题会让新手感觉的摸不着头脑。
在这里总结了一下,全是一家之言,望斧正。
进入正题:
linux下文件权限除了r,w,x外还有s,t,i,a权限
s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root省份执行。
需要注意的是:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s
权限不能正真的生效(chomd命令不进行必要的完整性检查,即使你不设置x属
性就设置s属性,chmod也不会报错,这时我们用ls -l查看时会看到rwS,大写的
S说明s属性没有生效)。Linxu修改密码passwd就是一个设置了SUID的程序,普
通用户无法读写/etc/shadow文件,但却可以修改自己的密码。
一个例子:
[qiao@linux ~]$ ls -l /usr/bin/passwd
-r-s--x--x 1 root root 18404 6月 9 2010 /usr/bin/passwd
我们可以通过字符模式设置s权限:chmod a+s filename,例如:
[qiao@linux ~]$ ls -l test
-rw-rw-r-- 1 qiao qiao 0 7月 24 10:32 test
[qiao@linux ~]$ chmod u+s test
[qiao@linux ~]$ ll test
-rwSrw-r-- 1 qiao qiao 0 7月 24 10:32 test
这里就是在没有设置x属性时去设置s属性,这里的大写S就表示s属性设置无效。
这里当然也可以用绝对模式去设置,这个大家自己联系了,我这里就不罗嗦了。
这里补充一点,对于other组没有这个属性。
t:设置粘着位,一个文件可读写的用户并一定想让他拥有删除此文件的权限,
如果文件设置了t权限则只有文件的所有者和root有删除文件的权限,通过
chmod +t filename来设置t权限。
这里同样补充一下:这里的 +t 和 o+t是一样的作用,这个是对other组的用户
而言的。同样在设置之前要具有x属性,否则设置了t后会是一个大写的T,这
样的设置是无效的。
i:不可修改权限。例如:chattr +i filename,则filename文件就不可以修改也不
能被删除,除非超级用户。并且这个属性只有超级用户可以设置。
a:只追加权限,主要针对日志文件系统。这个权限让目标文件只能追加,不能
删除,而且不能通过编辑器追加。可以使用chattr +a filename设置追加权限。
这里对chattr命令简单说明一下:
chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性
具体的用法大家man chattr一下,里面间的很详细。
希望和大家一起学习!
阅读(5832) | 评论(0) | 转发(0) |