Linux中文件的SUID、SGID、Sticky权限说明

1.SUID

​ 首先我们要了解,在Linux中启动一个程序或者启动一个进程是需要有用户的,一个文件的存在是要有用户和组的,一个进程启动后,它的属主取决于进程的发起者,比如 我用root用户启动了一个 cat 进程,那么cat 进程的属主就是root,同理我用user1启动more进程,more进程对应的属主就是user1。其次,一个可执行文件或者一个程序是否能启动为进程,取决于它的发起者是否拥有可执行的权限。那么问题来了,普通用户对文件有可执行的权限,但是对其配置文件 或者作用于其他文件没有权限怎么办?比如普通用户要修改自己的密码,修改密码就要用到passwd这个命令对吧,但是passwd这个命令它会把密码写到/etc/shadow,但是/etc/shadow这个文件只有root用户能够写,那么普通用户怎么把自己的密码写到/etc/shadow里的呢?这时我们就要说下SUID的作用了。SUID它主要作用是设置了suid的可执行二进制文件在启动为进程后,其进程的属主不在是启动二进制可执行文件的用户,而是二进制文件本身的属主,也就是说设置了SUID权限的可执行二进制文件在启动为进程后,其进程属主不在取决于发起者了,也就是说不管那个用户去启动它 ,其进程都是其可执行二进制文件的属主。比如我们给/bin/cat 设置SUID后 不管那个用户都可以用cat查看root有查看权限,而普通用户没有查看权限的文件,也就说当其他用户执行cat这个二进制可执行文件时,系统会默认把权限识别成root用户,当普通用户用cat去查看一个自己没有查看权限的文件时,系统会认为是root在查看这个文件,所有当我们给/bin/cat设置了SUID后,其他用户在用cat命令时 都会临时变成root用户。也就是因为这样 普通用户就可以才看自己本身没有查看权限的文件。

设置SUID的文件要求有如下几点:

  1. SUID只对可执行的二进制文件起作用,shell脚本设置后不生效。
  2. 如果设置了其suid后,其属主位的可以执行权限x会变成s(小写),如果是大写S 那么说设置的文件没有可执行权限,设置的SUID无效。
  3. SUID对目录设置无意义。

SUID设置方法:

字母设置方式:chmod u+s file

取消SUID:chmod u-s file

数字设置方式:chmod 4755(在普通三位数字权限位之前,用4代表添加的SUID位) file

取消SUID:chmod 0755 file

#chmod u+s /bin/cat  

以上命令在root身份下执行,可以让cat命令拥有SUID权限,给cat命令添加SUID之后,那么所有的用户执行这个命令时都会以属主为root的权限来执行cat 命令,那么所有的用户都可以查看passwd文件。

2.SGID

SGID属性同SUID一样,只是SUID作用于属主,而SGID作用于属组,SGID作用在二进制程序上时,执行权限的程序时此用户将继承此程序的所属组权限,作用于目录上时,此文件夹下所有用户新建文件都自动继承此目录的用户组。

具体用法:

字母设置方法:chmod g+s file

取消SGID:chmod g-s file

数字设置方法:chmod 2755(2表示SGID) file

取消SGID:chmod 0755 file

3.Sticky

这个权限的主要作用是在一个公共目录,每个用户都可以创建文件,删除自己的文件,但是不能删除别人的文件。这个权限只能用于目录,当某个目录拥有其Sticky权限 ,则其目录下的文件和目录只有root和其拥有者删除,其他用户不能删除,也就是说用户只能删除其自己本身属主的文件,不能删除其他属主的文件。如果一个目录设置了其sticky权限,则其目录其他用户组的执行权限x会变成t(小写),它和SUID、SGID一样如果对应位是位上的可执行x变成了大写T ,那么表示其目录其他用户位上没有可执行权限,当然设置的Sticky就无效。当然设置方法和SUID、SGID一样 都是用chmod命令来设置,只是Sticky作用于目录的其他用户位,

字母设置方法 chmod o+t file

取消 :chmod o-t file

数字设置方法:chmod 1755(1表示Sticky) file

取消:chmod 0755 file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花无凋零之时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值