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

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

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

第一部分:SUID

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

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

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

# 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命令为例

chmod  4755   /usr/bin/cat     //4代表SUID权限
chmod   u+s   /usr/bin/cat      //两种命令意思相同

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

如何删除SUID权限?

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

chmod 755 /usr/bin/cat
chmod   u-s   /usr/bin/cat

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

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

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

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

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

运维平台中RESTful的Token认证

在近期要做的RESTful服务API化的过程中,对于开放的API还是需要考虑基本的安全认证的,如果API能够随便被调用,可能对于功能来说是畅通的,如果调用...

823
来自专栏程序猿

MySQL加载本地文本、导入SQL文件及其他常见命令行。

923
来自专栏安恒网络空间安全讲武堂

hackme.inndy.tw的19道web题解(中)

目录 写在前面 ...... login as admin 0 Login as Admin 0.1 login as admin 1.2 login as a...

3328
来自专栏杨建荣的学习笔记

清理session的小插曲(二) (r6笔记第4天)

在上周巡检系统的时候发现session列表中显示有一个session的状态为“KILLED",当时没有太在意,等到周一回来做检查的时候,发现那个session的...

2636
来自专栏吴柯的运维笔记

使用mysqldump实现数据备份与恢复

一:使用mysqldump进行逻辑备份 1)备份MySQL服务器上的所有库 # mysqldump -u root -p --all-databases > ...

2699
来自专栏码农二狗

慎用replace into

1173
来自专栏24K纯开源

Qt Style Sheet实践(三):QCheckBox和QRadioButton

导读       单选按钮(QRadioButton)和复选框(QCheckBox)是界面设计中的重要元素。单选按钮只允许用户在一组选项中选择一个,且当其中一个...

3256
来自专栏主机笔记

windows7英文版一键修改系统语言为中文

上一篇文章中我用solusvm加载镜像安装了英文版windows7系统,但是商家提供的系统镜像都是英文的,一些软件和网页会出现乱码的问题,必须安装中文语言包才能...

3367
来自专栏tiane12

DISCUS X3后台更新缓存失败提示:(1146) TABLE ‘COMMON_MEMBER_ARCHIVE’ DOESN’T EXIST的解决方案\

1034
来自专栏闻道于事

Oracle数据库常用命令

--查询当前系统中的所有用户 select * from all_users --查当前用户下所有的表: select * from tab wher...

2799

扫码关注云+社区