码迷,mamicode.com
首页 > 其他好文 > 详细

关于特殊文件权限:suid、sgid和sticky-bit

时间:2017-04-28 13:41:04      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:添加文件   8进制   gui   sgu   安全   setgid   root   标志位   应该   

  用 ls –l 命令时,能看到三个八进制数字,表示文件的权限。其实文件的权限应该用4个八进制文件来表示,没有显示的那个是第一位,用来设定一些特殊的权限,这个八进制数字的三个位是:SUID、SGID、stick-bit。

SUID:当设置了SUID 位的文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。如果所有者是 root 的话,那么执行人就有root权限了。这时该位将变成一个安全漏洞,因此不要轻易设置该位。

SGID:该权限只对目录有效。目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

Sticky-bit:该位可以理解为防删除位。一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限。 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件。如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位。设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。

 

有两种方法可以来设置这些权限:

1、直接设置标志位

chmod u+s temp 为temp文件加上suid标志

chmod g+s tmp  为tmp目录加上sguid标志

chmod o+t temp 为temp文件加上sticky标志

2、采用八进制数字来设置标志位

用四位八进制数表示当前文件的权限,第一位八进制数如用abc表示

a - setuid位, 如果该位为1,则这个8进制数为4,则表示设置setuid

b - setgid位, 如果该位为1, 则表示设置setgid 

c - sticky位, 如果该位为1, 则表示设置sticky 

使用 chmod 4xxx,2xxx,1xxx。。。。等来设置标志位就是一样的效果了。

 

设置完这些标志后, 可以用 ls -l 来查看。如果有这些标志, 则会在原来的执行标志位置上显示。原来的执行标志x到哪里去了呢? 系统规定, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t),若无执行权限则显示为大写字母 (S, S, T)。

如:

rwsrw-r-- 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

关于特殊文件权限:suid、sgid和sticky-bit

标签:添加文件   8进制   gui   sgu   安全   setgid   root   标志位   应该   

原文地址:http://www.cnblogs.com/cqufengchao/p/6780941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!