您的位置:首页 > 运维架构 > Linux

linux的特殊权限(转载)

2015-09-06 14:34 489 查看
进程的安全上下文(1)、用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限(2)、程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组(3)、进程拥有的访问权限,取决于属主的访问权限(a) 进程的属主,同文件属主,则应用文件属主权限(b) 进程的属主,属于文件的属组,则应用文件属组的权限(c) 否则应用其他权限
SUID:展示于文件属主的执行权限位,s表示属主原本拥有x权限,S表示属主原本无x权限功用:对于一个可执行文件来讲,任何用户运行此程序为进程之后,其属主不再是进程的发起者,而是程序文件自己的属主,这种机制即为SUID
权限设定:chmod u+s FILE...chmod u-s FILE...
例如:用户需要修改密码,输入passwd命令之后,则运行/usr/bin/passwd文件,该文件的属主、属组都是root,其他用户只有执行权限。


而运行该命令修改密码后它会更新/etc/passwd和/etc/shadow文件,而这两个文件只有root用户才具修改限限。


所以,/usr/bin/passwd文件的SUID权限会让该程序运行后就具有root的权限,那么以root的身份就能修改,/etc/passwd、/etc/shadow这两个文件了。

SGID:展示于文件属组的执行权限位默认情况下,用户创建文件时,其属组为此用户所属的基本组;一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建文件,这些所属的组均为该目录的属组。
权限设定:chmod g+s FILE...chmod g-s FILE...
例如:有一群人需要在某个目录协同工作时,可为目录设置SGID权限。这样在该目录中创建的文件属组都是该目录的属组,再把该组添加为用户的附加组,对组分配相应的权限。在该目录下大家就可协同工作了。
在一个公共的目录,给目录的属组分配rwx权限,这样只要隶属于该组的用户都可以在该目录内创建文件,而创建的文件或目录大家都有权打开和修改。为了防止用户误操作,限制用户只能删除自己创建的文件,这就是特殊权限Sticky的作用。

Sticky:展示于其他用户的执行权限位,小写字母t对一个公共目录,此权限用于限制每个用户只能删除自己创建的文件
权限设定:chmod o+t FILE...chmod o-t FILE...
特殊权限的二进制数表示方式SUID, SGID, STICKY
0000
0011STICKY
0102SGID
0113SGID+STICKY
1004SUID
1015SUID+STICKY
1106SUID+SGID
1117SUID+SGID+STICKY
特殊权限也可以跟文件正常的权限一起设置:chmod 4777 FILEchmod 2755 DIRchmod 3755 DIR 实例://在/home下创建个pub目录,为该目录同时设置SUID和Sticky权限

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sgid suid stick