我想使用命令行显示:


所有用户和


所有组
在我的系统中。


usersgroups命令显示当前登录的用户,以及一个用户所属的组。
如何通过命令行显示所有用户和所有组的列表?

#1 楼

您可以借助compgen内置命令来显示如下:



要显示所有用户,请运行以下命令:

compgen -u

要显示所有组,请运行以下命令:

compgen -g



但是,您也可以按cut -d ":" -f 1 /etc/passwd显示所有用户。

评论


真好!最好使用getent passwd / getent组而不是处理本地文件(getent也应适用于非本地帐户)

–钢驾驶员
2014年8月23日14:31

@steeldriver compgen似乎确实适用于非本地帐户(至少对于LDAP)。

–muru
2014年8月23日14:32



@muru我专门指的是第二种方法(cat / etc / passwd | cut -d ...)

–钢驾驶员
2014年8月23日14:46

@steeldriver啊,对不起。我认为这是一个更普遍的看法。

–muru
2014年8月23日14:57

好吧,在我的ubuntu上,我有一些由docker mount以user:group身份以999:999创建的文件,但是不幸的是,以上命令都没有将它们打印出来。

– Marinos An
19年3月19日在11:31



#2 楼

这里我们将使用getent来获取详细信息

我们可以通过以下命令列出用户:

getent passwd


我们可以列出该组如下:

getent group


要获取特定用户的详细信息

getent passwd lalit


用户名。 Lalit不会出现在每个系统中:)

您可以在此处阅读有关getent的更多信息