Linux 文件特殊权限

来源:互联网 发布:即时通讯软件源码 编辑:程序博客网 时间:2024/05/23 00:03


SetUID功能:

1.只有可以执行的二进制程序才能设定SUID权限

2.命令执行者要对该程序拥有x权限

3.命令执行者在执行该程序时获得该程序文件属主身份

4.SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

cat命令没有SetUID权限,所以普通用户不能查看/etc/passwd/文件内容

因为普通用户的密码在/etc/passwd影子文件中,这个影子文件权限是000,因为passwd命令有suid权限(所有者带有 s),

普通用户在执行这个命令时会暂时获得这个文件的所有者权限,也就是root,超级用户有对shadow文件任何权限

我们切换到普通用户 ,由于没有suid权限所以不能查看



设定SUID

chmod 4755 文件名     4代表SUID

chmod u+s 文件名

取消SUID

chmod 755 文件名

chmod u-s 文件名

创建一个文件夹a  加上SUID权限发现出现大写S 其实是不能执行的,因为没有权限x



SGID针对文件的作用

1.只有可以执行的二进制程序才能设定SGID权限

2.命令执行者要对该程序拥有x权限

3.命令执行者在执行该程序的时候,组身份升级为该程序文件的属组

4.SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效


案例:



解释下/usr/bin/locate是可执行的二进制程程序 ,执行的用户对这个命令有x权限,执行命令时组身份会升级mlocate

而mlocate组对这个/var/lib/mlocate.mlocate.db数据库有r权限,所以普通用户可以使用locate 查询数据库,执行结束后,

所属组又会回到原来用户的组





SGID针对目录的作用

1.普通用户必须对此目录有r和x权限,才能进入目录

2.普通目录在此目录中的有效组,会变成此目录的属组

3.若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组

案例:






SBIT粘着位作用:

1.粘着位目前只对目录有效

2.普通用户对该目录拥有w和x权限,即普通用户可以再此目录拥有写入权限

3.如果没有粘着位,因为普通用户拥有W权限,所以可以删除此目录下所有文件,

包括其他用户建立的文件。一但赋予了粘着位,除了root可以删除所有文件,普通

用户就算拥有W权限,也只能能删除自己建立的文件,但是不能删除其他用户建立的文件

案例说明:

按理说zhangsan 用户有对/tmp目录的写权限,是可以删除的,但因为/tmp拥有SBIT权限,所以就不能删除了,只允许创建这个文件的用户删除


原创粉丝点击