在Linux上,我如何列出所有拥有root权限的用户(甚至更好,所有的用户,如果他们有root权限的话)?
不要忘记更改根密码。 如果任何用户除root以外还有UID 0,则不应该这样做。 馊主意。 去检查:
grep 'x:0:' /etc/passwd
再次,你不应该这样做,而是要检查用户是否是根组的成员:
grep root /etc/group
要查看是否有人能够以root身份执行命令,请检查sudoers:
cat /etc/sudoers
要检查SUID位,它允许程序以root权限执行:
find / -perm -04000
查看谁是UID 0:
getent passwd 0
要查看谁在群组中, wheel
adm
和admin
:
getent group root wheel adm admin
要列出所有用户和他们是其成员的组:
getent passwd | cut -d : -f 1 | xargs groups
纯根是用户标识“0”。
系统中的所有用户都在/ etc / passwd文件中:
less /etc/passwd
那些是root的用户名是“0”,这是第三列。 那些“0”作为组(第四列)也可能有一些root权限。
接下来,您将需要查看这些组,然后查看谁是“根”或“轮”或“pipe理员”组的其他成员:
less /etc/group
列在这些组中的用户可以拥有一些root权限,特别是通过“sudo”命令。
你要检查的最后一件事是“sudo”configuration,看看谁被列为授权运行这个命令。 这个文件本身是有据可查的,所以我不会在这里重现它:
less /etc/sudoers
这涵盖了谁可以拥有root权限的主要领域。
打印所有用户
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
要仅打印具有UID 0的用户,正如其他人所说的那样,具有隐式根权限的用户:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
要获得所有用户的快速列表,请在inputpasswd
命令后input空格,然后尝试两次(自动完成)。 这也适用于su
命令。
必须作为root权限的用户来完成。