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 条评论
登录 后参与评论

相关文章

来自专栏实用工具入门教程

如何部署 Bacula Server

Bacula是一种开源网络备份解决方案,允许您创建备份并执行计算机系统的数据恢复。它非常灵活和强大,这使得它在配置时稍微麻烦,适合在许多情况下进行备份。备份系统...

813
来自专栏运维小白

zabbix设置QQ邮箱告警

zabbix环境搭建 zabbix设置163邮箱报警 zabbix设置QQ邮箱告警 背景 设置QQ邮箱告警 实现(可以参考163邮箱设置告警) 首先在QQ邮箱...

40011
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Distillery和edeliver自动化Elixir-Phoenix部署

Elixir构建于Erlang编程语言之上,是一种功能性编程语言,因其专注于开发人员的工作效率以及因为编写高度并发和可伸缩的应用程序而易于使用而闻名。

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

翻译 | Linux利用动态链接共享对象库提权

Linux利用动态链接共享对象库提权 RPATH和弱文件权限会导致系统的损害。Linux应用程序可以利用动态链接的共享对象库(我们从现在开始称它们为共享库)来提...

2025
来自专栏Seebug漏洞平台

GNU tar 解压路径绕过漏洞(CVE-2016-6321) 分析

Author: LG (知道创宇404安全实验室) 漏洞简介 GNU tar文档管理命令是linux系统下常用的一个打包、压缩的命令。经CSS(FSC1V Cy...

3416
来自专栏Hadoop实操

如何配置Kerberos服务的高可用

在前面的文章中Fayson介绍过《如何在CDH集群启用Kerberos》,对于一个启用了Kerberos的正式生产系统,还需要考虑KDC的高可用。而Kerber...

4838
来自专栏乐沙弥的世界

Linux 文件目录特殊权限设定(SUID,SGID,SBIT)

Linux文件及目录的权限设定,除了我们孰知的读写执行(rwx)之外,还有一些特殊的权限设定用来满足特定的目录。这些特殊权限的设定主要是SUID,SGID以及S...

552
来自专栏bboysoul

使用nginx做负载均衡(docker实现)

使用nginx做负载均衡就是修改一个配置文件的事情,网上大部分教程都是在本机去安装nginx做的,但是为什么不能使用docker更加方便的去做这件事情呢,今天我...

684
来自专栏魏艾斯博客www.vpsss.net

如何使用 Vultr Snapshots 创建快照功能

2044
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装Bacula Server

Bacula是一种开源网络备份解决方案,允许您创建备份并执行计算机系统的数据恢复。它非常灵活和强大,这使得它在配置时稍微麻烦,适合在许多情况下进行备份。备份系统...

1031

扫码关注云+社区