SUID~这账怎么算?
Posted Linux无限探索
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SUID~这账怎么算?相关的知识,希望对你有一定的参考价值。
我们都知道linux里面一切都是文件。文件拥有普通权限rwx,特殊权限suid,sgid,sbit等。本文分享一下suid几个的小实验,通过实验我们可以更加深入的理解suid权限,希望对于我们理解有帮助。 |
首先,咱们都知道linux用户(不论是超级用户还是普通用户)都可以更改自己的密码。密码这个文件是在/etc/shadow文件里面。我们查看这个文件的权限就可以发现:这个文件权限全为空,见下图:
换一种说法:普通用户对/etc/shadow文件没有任何权限的。那我们就有有疑问了,普通用户都可以更改自己的密码,但是现在看来又没有任何权限。那我们就要想到文件的特殊权限SUID了。
普通用户更改密码是使用passwd命令完成的,我们可以通过whereis passwd查看passwd的绝对路径。见下图:
仔细看就会发现/usr/bin/passwd权限是:-rwsr-xr-x. root root 。其中s代表的意思就是suid权限。suid可以让执行者临时拥有属主的权限。这样我们就不难理解了,普通用户使用psaawd命令更改密码,由于passwd拥有suid权限,所以linux系统临时把passwd命令的所有者(root)身份赋给了普通用户,从而普通用户就拥有了root身份,所以就可以使用passwd来修改密码(/etc/shadow文件)。
那么普通用户可不可以读取/etc/shadow文件呢?我们看到cat文件没有suid权限。见下图:
那么如果我们给cat命令加上suid权限,是不是就可以看/etc/shadow文件了呢?
果然,我们看到了加上suid权限的cat成功看到了/etc/shadow文件。
现在,我相信我们对于suid权限有了进一步的认识。但是出于安全考虑,我们还是不要让普通用户拥有这么大的权利。以免发生不可预知的危险。
本文原创地址: https://www.linuxprobe.com/suid.html作者:王毅,审核员:逄增宝
本文来自博客园,作者:linux_pro,转载请注明原文链接:https://www.cnblogs.com/linuxpro/p/17462278.html
SUID SGID
SUID
1.只作用在可执行文件上,普通用户需要对该文件有x权限,
2.在执行该文件时,用户身份切换为文件owner;
3.执行完毕,切换回普通用户。
一、查找具有SUID权限的系统文件(-4000 表示至少有SUID权限)
[[email protected] ~]$ sudo find / -perm -4000 2>/dev/null /usr/bin/chfn /usr/bin/chage /usr/bin/gpasswd /usr/bin/newgrp /usr/bin/chsh /usr/bin/sudo /usr/bin/mount /usr/bin/su /usr/bin/umount /usr/bin/crontab /usr/bin/pkexec /usr/bin/passwd /usr/sbin/pam_timestamp_check /usr/sbin/unix_chkpwd /usr/sbin/usernetctl /usr/lib/polkit-1/polkit-agent-helper-1 /usr/lib64/dbus-1/dbus-daemon-launch-helper
二、比较系统SUID文件变化
1.将系统现有的SUID文件存入 /root/suid.list
2.创建比较脚本
#!/bin/bash find / -perm -4000 -o -perm -2000 > /tmp/setuid.check 2>/dev/null cat /dev/null >/root/suid_log_$(date +%F) for i in $( cat /tmp/setuid.check ) do grep $i /root/suid.list > /dev/null if [ $? -ne 0 ] ; then echo "$i don‘t exist in listfile!" | tee -a /root/suid_log_$(date +%F) fi done
以上是关于SUID~这账怎么算?的主要内容,如果未能解决你的问题,请参考以下文章