前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux文件特殊权限详解之SUID篇

linux文件特殊权限详解之SUID篇

原创
作者头像
Shawn_Kid
修改2017-06-19 19:12:45
3.2K0
修改2017-06-19 19:12:45
举报
文章被收录于专栏:KID的专栏

在之前的权限管理的文章中,我们了解了文件权限的基本内容和ACL相关内容。今天我们来讲讲文件权限管理的另一个内容:文件特殊权限

文件特殊权限是权限管理中比较难的一部分,分三个小内容,分别是:suid、sgid和sticky。

第一部分:SUID

首先了解一下SUID主要功能:当用户执行某一程序时,临时获得该程序所有者的身份(非所有者以所有者身份运行)

这样的说法难免有些晦涩,打个比方:

普通用户是没有/etc/shadow文件的权限的,但是仍然可以修改自己的密码,原因就是修改密码的命令“passwd”拥有SUID权限。

代码语言:txt
复制
# which passwd                    //查询passwd命令所在目录
/usr/bin/passwd
# ll /usr/bin/passwd          //查看passwd文件权限
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd             //标红的S代表SUID权限

反例:cat命令没有SUID权限,所以普通用户无法查看/etc/shadow 文件。

由上面的例子,我们可以知道

1.只有可执行的二进制程序才能设定SUID权限。(给一个非程序设定SUID是没有意义的)

2.命令的执行者必须对该程序拥有X(执行)权限,否则没有SUID没有意义。

3.SUID权限只在程序运行的过程中有效。(普通用户变身为root超人的时间和限制是非常严格的)

所以,大家在设定SUID是时一定要十分谨慎,因为SUID权限是十分危险的!

假设你给VIM设定的SUID权限,那么任何人都可以直接修改系统关键文件,包括但不仅限于shadow文件。

好了,了解完SUID的知识,终于可以设定SUID权限了。

如何设定SUID权限?

有两种方法:我以cat命令为例

代码语言:txt
复制
chmod  4755   /usr/bin/cat     //4代表SUID权限
chmod   u+s   /usr/bin/cat      //两种命令意思相同

输完上面的命令,我的普通用户也可以cat /etc/shadow 文件了。这里不再演示。

如何删除SUID权限?

很简单,将权限再次指回即可。

代码语言:txt
复制
chmod 755 /usr/bin/cat
chmod   u-s   /usr/bin/cat

在最后再次重申SUID的危险性,为了保证服务器安全,我们应该

1.对关键目录严格控制写权限,如 “/” “/etc” “/usr”

2.用户的密码严格设置并且遵守密码三原则

3.对系统中拥有SUID权限的文件作一列表,并且定期检查。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一部分:SUID
  • 如何设定SUID权限?
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档