Linux 特殊权限set_uid
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 特殊权限set_uid相关的知识,希望对你有一定的参考价值。
特殊权限set_uid
默认情况下 , 在新安装好的Linux系统下 , 仅有一个命令是拥有set_uid特殊权限的 .
拥有s权限的命令(文件) : 为了确保非所有者用户 , 在使用该命令时,临时拥有所有者的身份 ; 给一个文件设置set_uid特殊权限,前提是该文件是一个可执行的二进制文件(一般都是给命令加上这样的特殊权限) , 否则没有任何意义 , 就如给一个文件夹设置一个set_uid权限一样 , 没有任何实际意义 .
1. 给命令加上set_uid特殊权限
格式 chmod u+s 命令的文件路径 chmod u+s /usr/bin/ls chmod u-s /usr/bin/ls
/root/目录的权限 , 是只有root用户和root组下的用户才能访问的 , 其他用户没有任何权限 .
[[email protected] ~]# ls -ld /root/dr-xr-x---. 3 root root 178 6月 8 14:16 /root/
那么如果用一个普通用户去查看/root/目录下的内容时 , 肯定会报权限不足的错误 .
[[email protected] ~]$ ls -l /root/ls: 无法打开目录/root/: 权限不够
给ls命令添加上set_uid特殊命令后 , 验证能否临时加上只有root用户才有的查看/root/目录的权限
[[email protected] ~]# which lsalias ls=‘ls --color=auto‘ /usr/bin/ls[[email protected] ~]# ls -l /usr/bin/ls-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls[[email protected] ~]# chmod u+s /usr/bin/ls[[email protected] ~]# !lsls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls[[email protected] ~]#
切换到allin1的普通用户 , 再次使用ls命令 , 看看普通用户是否拥有了root用户的权限 , 可以查看/root/目录
[[email protected] ~]# ssh -p 22 [email protected]130Last login: Fri Jun 9 08:54:21 2017 from 192.168.245.132[[email protected] ~]# whoamiroot [[email protected] ~]# su - allin1上一次登录:五 6月 9 08:54:30 CST 2017pts/3 上 [[email protected] ~]$ whoami allin1 [[email protected] ~]$ ls -l /root/ 总用量 8-rwx--x--x. 1 root root 0 6月 8 14:16 2.txt -rw-------. 1 root root 7728 6月 6 22:11 anaconda-ks.cfg.1[[email protected] ~]$
2. 给命令添加set_uid特殊权限的第二种方式
格式 : chmod u=rws 命令文件路径 chmod u=rws /usr/bin/ls
这样修改后的ls命令的权限 , 和第一种方式修改后的ls命令权限有一些区别 , 但是效果却一样
[[email protected] ~]# chmod u-s /usr/bin/ls[[email protected] ~]# ls -l /usr/bin/ls-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls [[email protected] ~]# chmod u=rws /usr/bin/ls[[email protected] ~]# ls -l /usr/bin/ls-rwSr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls [[email protected] ~]#
这样添加set_uid的特殊权限后 , ls命令的权限变成rwS , 是一个大写的S , 而第一种方式添加特殊权限后 , ls命令的权限是rws , 是一个小写的s ... 这两者的区别是 , 第二种方式 , 缺少了x权限 , 要想也成为小写的s , 那么也可以额外在添加上x权限 , 不过这个并不影响ls命令临时拥有了root用户权限 .
[[email protected] ~]$ ls -l /usr/bin/ls -rwSr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls [[email protected] ~]$ ls -l /bin/ls -rwSr-xr-x. 1 root root 117656 11月 6 2016 /bin/ls [[email protected] ~]$ ls -l /root/ 总用量 8-rwx--x--x. 1 root root 0 6月 8 14:16 2.txt -rw-------. 1 root root 7728 6月 6 22:11 anaconda-ks.cfg.1[[email protected] ~]$
加上x权限
[[email protected] ~]# chmod u+x /usr/bin/ls[[email protected] ~]# ls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
本文出自 “Linux之路” 博客,请务必保留此出处http://allin28.blog.51cto.com/12931477/1933858
以上是关于Linux 特殊权限set_uid的主要内容,如果未能解决你的问题,请参考以下文章