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

作为 Linux 管理员,您必须知道如何 添加、删除和授予 sudo 特权 给用户。 有时你可能会暂时给予 sudo 访问普通用户以自行安装软件或执行某些管理任务。 随着时间的推移,我们可能会忘记撤销 sudo 特权。 因此,最好不时检查您的 Linux 系统中有多少超级用户。 如果有任何忘记或不需要的 sudo 访问,您可以简单地撤销它们。 这个简短的指南解释了如何找到所有 sudo Linux 和类 Unix 操作系统中的用户。

推荐下载 – 免费备忘单:“Linux 命令行备忘单”

列表 sudo Linux 中的用户

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

$ awk -F':' '{ print $1}' /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 ostechnix

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

$ compgen -u

现在让我们只找到 sudo 或我们的 Linux 系统中的超级用户,使用以下命令:

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

你也可以使用 "getent" 命令而不是 "grep" 得到相同的结果。

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

正如您在上面的输出中看到的,“sk”和“ostechnix”是 sudo 我系统中的用户。

查找用户是否有 sudo 特权

我们现在知道如何找到所有 sudo 我们 Linux 系统中的用户。 如何查看某个用户是否有 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 may 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 may not run sudo on ubuntuserver.

建议阅读:

  • 如何在 Ubuntu 上向用户授予和删除 Sudo 权限
  • 如何在 Linux 中更改默认 Sudo 日志文件
  • 如何恢复用户的 Sudo 权限
  • 如何在 Linux 中运行没有 Sudo 密码的特定命令
  • 使用时如何强制用户使用root密码而不是自己的密码 sudo

命令行查找所有 Sudo 用户LinuxLinux 基础Linux 命令Linux 如何Linux 用户管理列出 Linux 用户sudosudo 用户超级用户