云网牛站
所在位置:首页 > Linux教程 > 在Linux系统下查找所有sudo用户的方法

在Linux系统下查找所有sudo用户的方法

2019-02-16 21:50:58作者:刘若鑫稿源:云网牛站

本文介绍在Linux系统下查找所有sudo用户的方法,普通用户如何转变为sudo用户请参考Debian系统如何赋予普通用户sudo权限一文。

在Linux系统下查找所有sudo用户的方法

 

背景

有一天Linux用户问我如何找到我的Linux服务器中的超级用户数(拥有sudo访问权限的用户)?好问题,但是,我没有答案,其实这只是一个单行命令。对于那些想知道如何在Linux系统中找到所有sudo用户或超级用户的人,请继续阅读。

你可能会认为一个优秀的Linux管理员必须知道他管理的系统中有多少超级用户和普通用户,你是对的,但是,有时我们有可能需要临时sudo访问普通用户来安装软件或自己执行某些管理任务,随着时间的推移,我们可能忘记撤销sudo访问权限,因此,最好不时地了解系统中有多少超级用户,如果有任何遗忘或不需要的sudo访问权限,你可以简单地撤销它们,可以参考在Linux系统中运行没有sudo密码的特定命令

 

在Linux系统下查找所有sudo用户的方法

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

$ 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

ywnz

你还可以使用以下命令列出所有用户:

$ compgen -u

在所有用户中,让我们只在Linux系统下找到sudo或超级用户:

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

sk,ywnz

此外,你可以使用“getent”命令而不是“grep”命令(在Linux系统下使用grep命令搜索文件的详细用法)来获得相同的结果:

$ getent group sudo | cut -d: -f4

sk,ywnz

正如你在上面的输出中看到的,“sk”和“ywnz”是我Ubuntu系统下的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 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.

至此,在Linux系统下查找所有sudo用户的方法就讲到这里了。

 

相关主题

Linux系统中sudo命令的10个技巧

精选文章
热门文章