如何在Linux中查找所有sudo用户

时间:2020-03-21 11:43:45  来源:igfitidea点击:

作为Linux管理员,我们必须知道如何为用户添加,删除和授予sudo权限。

有时,我们可能已经给予临时sudo访问普通用户来安装软件或者在他/她身上执行某些管理任务。
随着时间的推移,我们可能会忘记撤销sudo权限。
因此,良好的做法是检查有时候在Linux系统中有多少超级用户。
如果有任何遗忘或者不需要的sudo访问权限,则可以简单地撤销它们。
此简要介绍介绍如何在Linux和Unix的操作系统中查找所有Sudo用户。

在Linux中查找所有sudo用户

让我们首先列出系统中的所有用户。
为此,运行:

$awk -F':' '{ print }' /etc/passwd

来自我的Ubuntu系统的示例输出:

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
systemd-timesync
systemd-network
systemd-resolve
systemd-bus-proxy
syslog
_apt
lxd
messagebus
uuidd
dnsmasq
sshd
sk
senthil
kumar
theitroad

在Linux系统中列出所有用户的另一种方法是:

$compgen -u

现在让我们只使用命令查找我们的Linux系统中的sudo或者超级用户:

$grep '^sudo:.*$' /etc/group | cut -d: -f4
sk,theitroad

我们还可以使用"Getent"命令而不是"Grep"来获得相同的结果。

$getent group sudo | cut -d: -f4
sk,theitroad

正如我们在上面的输出中看到的那样,"SK"和"OniTorad"是我系统中的sudo用户。

查找用户是否有sudo权限

我们现在知道如何在Linux系统中找到所有Sudo用户。
如何找到某个用户是否有sudo权限?
这很容易!

要查找用户是否是sudo用户,只需运行

$sudo -l -U sk

示例输出:

Matching Defaults entries for sk on ubuntuserver:
 env_reset, mail_badpass,
 secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User sk Jan run the following commands on ubuntuserver:
 (ALL : ALL) ALL

如我们所见,名为"SK"的用户可以执行所有命令。
所以,他在Sudo集团。

让我们检查另一个用户。

$sudo -l -U senthil

示例输出:

User senthil is not allowed to run sudo on ubuntuserver.

嗯,用户"senthil"不允许运行sudo。
他只是一个普通的用户!

通过运行以下命令,我们还可以找到用户是否具有sudo访问权限:

$sudo -nv

如果我们没有作为输出的任何内容,用户都有sudo访问权限。

如果我们看到如下所示的输出,则用户没有sudo访问权限。

$sudo -nv
Sorry, user senthil Jan not run sudo on ubuntuserver.