网站大量收购闲置独家精品文档,联系QQ:2885784924

Linux的特殊文件权限--SUID、SGID、Stick bit.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux的特殊文件权限--SUID、SGID、Stick bit

Linux的特殊文件权限--SUID、SGID、Stick bit一般文件权限读(R),写(W),执行(X)权限比较简单。一般材料上面都有介绍。这里介绍一下一些特殊的文件权限——SUID,SGID,Stick bit。 如果你检查一下/usr/bin/passwd和/tmp/的文件权限你就会发现和普通的文件权限有少许不同,如下图所示: 这里就涉及到SUID和Stick bit。SUID和SGID 我们首先来谈一下passwd程序特殊的地方。大家都知道,Linux把用户的密码信息存放在/etc/shadow里面,该文件属性如下: 可以看到Shadow的只有所有者可读写,所有者是root,所以该文件对普通用户是不可读写的。但是普通用户调用passwd程序是可以修改自己的密码的,这又是为什么呢?难道普通用户可以读写shadow文件?难道Linux有漏洞?当然不是啦。password可以修改shadow文件的原因是他设置了SUID文件权限。 SUID文件权限作用于可执行文件。一般的可执行文件在执行期的所有者是当前用户,比如当前系统用户是simon,simon运行程序a.out,a.out执行期的所有者应该是simon。但是如果我们给可执行文件设置了SUID权限,则该程序的执行期所有者,就是该文件所有者。还以前面的a.out为例,假如a.out设置了SUID,并且其所有者是root,系统当前用户是simon,当simon运行a.out的时候,a.out在运行期的所有者就是root,这时a.out可以存取只有root权限才能存取的资源,比如读写shadow文件。当a.out执行结束的时候当前用户的权限又回到了simon的权限了。 passwd就是设置了SUID权限,并且passwd的所有者是root,所以所有的用户都可以执行他,在passwd运行期,程序获得临时的root权限,这时其可以存取shadow文件。当passwd运行完成,当前用户又回到普通权限。 同理,设置程序的SGID,可以使程序运行期可以临时获得所有者组的权限。在团队开发的时候,这个文件权限比较有用,一般系统用SUID比较多。 SGID可以用于目录,当目录设置了SGID之后,在该目录下面建立的所有文件和目录都具有和该目录相同的用户组。Stick bit(粘贴位) 对程序,该权限告诉系统在程序完成后在内存中保存一份运行程序的备份,如该程序常用,可为系统节省点时间,不用每次从磁盘加载到内存。Linux当前对文件没有实现这个功能,一些其他的UNIX系统实现了这个功能。 Stick bit可以作用于目录,在设置了粘贴位的目录下面的文件和目录,只有所有者和root可以删除他。现在我们可以回头去看看/tmp/目录的情况,这个目录设置了粘贴位。所以说,并且所有人都可以对该目录读写执行(777),这样意味着所有人都可以在/tmp/下面创建临时目录。因为设置Stick bit只有所有者和root才能删除目录。这样普通用户只能删除属于自己的文件,而不能删除其他人的文件。如下图所示:设置SUID,SGID,Stick bit 前面介绍过SUID与SGID的功能,那么,如何打开文件使其成为具有SUID与SGID的权限呢?这就需要使用数字更改权限了。现在应该知道,使用数字更改权限的方式为“3个数字”的组合,那么,如果在这3个数字之前再加上一个数字,最前面的数字就表示这几个属性了(注:通常我们使用chmod xyz filename的方式来设置filename的属性时,则是假设没有SUID、SGID及Sticky bit)。? 4为SUID? 2为SGID? 1为Sticky bit? 假设要将一个文件属性改为“-rwsr-xr-x”,由于s在用户权限中,所以是SUID,因此,在原先的755之前还要加上4,也就是使用“chmod 4755 filename”来设置。 SUID也可以用“chmod u+s filename”来设置,“chmod u-s filename”来取消SUID设置;同样,SGID可以用“chmod g+s filename”,“chmod g-s filename”来取消SGID设置。Linux的特殊文件权限--SUID、SGID、Stick bit 1 / 4

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档