在 Raspbian 中列出用户和用户组

Tom*_*ica 7 users debian

让我惊讶的是,没有任何搜索让我想到这样一个简单的问题。我想要的只是获取用户和用户组的列表(无论第二件事实际上是什么)。

我发现了许多有关创建或删除用户帐户的资源,但听起来每个人都牢记系统上的所有帐户。我想不是那样的。

那么我如何列出他们,他们的权限以及如何列出组?

slm*_*slm 11

您还可以使用该getent命令查询系统的用户、组等。

例子

用户

$ getent passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)

团体

$ getent group | head -5
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
Run Code Online (Sandbox Code Playgroud)

getent与仅查看/etc/passwd/etc/group文件相比,使用的优点是getent将使用系统的 NSS - 名称服务开关来查询系统,该开关定义了在给定系统上应如何处理诸如此类的“数据库”。

国家安全局

大多数 Linux 系统上的 NSS 是通过文件/etc/nsswitch.conf. 该文件定义了“数据库”,然后定义了它们的解析方式。

示例 在下面,您可以看到“数据库”密码和组应该由文件提供,但也可以由 LDAP、NIS 或任意数量的其他方法提供。

# /etc/nsswitch.conf

# Example:
#passwd:    db files nisplus nis
#shadow:    db files nisplus nis
#group:     db files nisplus nis

passwd:     files
shadow:     files
group:      files
#initgroups: files
Run Code Online (Sandbox Code Playgroud)

其他数据库

密码和组只有 2 个,有许多数据库可以通过getent. 查看getent手册页以获取完整列表。

您还可以从getent的使用页面获取列表。

$ getent --help
...
Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups
netgroup networks passwd protocols rpc services shadow
...
Run Code Online (Sandbox Code Playgroud)

参考


Joh*_*024 5

可能有更多用户友好的方式来显示它,但所有信息都在这两个文件中。对于完整的用户帐户列表,每行一个帐户:

less /etc/passwd
Run Code Online (Sandbox Code Playgroud)

对于完整的组列表,每行一个组:

less /etc/group
Run Code Online (Sandbox Code Playgroud)

查看man 5 passwdman 5 group了解所有字段含义的详细信息。

另一方面,如果您的 Raspbian 是由熟练的管理员自定义配置的,目的是在网络范围内的机器之间共享用户和组帐户信息,那么我上面写的内容是不够的,您应该遵循@slm 的精心编写建议。