Linux 文件特殊权限SetUID、SetGID和Sticky BIT 学习总结
一、前言:
前面用了三篇文章总结Linux基本权限、umask默认权限、ACL权限和sudo授权,由于自身认知的关系,虽不尽全部,但也足够详细,记录下来所学到的一点一点,希望对看到本文的朋友有所帮助。
本篇总结Linux权限管理中的文件特殊权限 SUID、SGID和Sticky BIT。
二、文件特殊权限 SetUID、SetGID和Sticky BIT
2.1 SetUID(SUID)
2.1.1 SetUID是什么
- SetUID功能理解:
- 必须是可执行的二进制程序,通俗来讲就是命令;
- 命令执行者对该程序具有执行权限(x);
- 命令执行者在执行命令期间,身份变成所属者身份;
- SetUID只在程序执行过程中有效,程序执行结束即失效。
2.1.2 举例:普通用户 test 修改自身密码
- 查看用户文件 /etc/passwd 和 /etc/shadow 权限
[root@localhost ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1496 5月 1 12:52 /etc/passwd
[root@localhost ~]# ll /etc/shadow
----------. 1 root root 1190 5月 1 12:53 /etc/shadow
默认情况,普通用户对两个文件只有读权限,不能修改文件
- 分别查看root用户和test用户 /usr/sbin/passwd 命令权限
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd
[root@localhost ~]# su - test
[test@localhost ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd
普通用户test对于passwd命令是有执行权限(x)的,所以可以修改密码
- test 用户 修改自己的密码
[test@localhost ~]$ passwd
更改用户 test 的密码 。
为 test 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
我们看到,密码修改成功。
- 我们来看看这个修改密码的过程都经历了什么
- test用户对 /usr/bin/passwd 命令拥有执行权限(x);
- /usr/