作为 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 用户超级用户