我需要获取并过滤 Linux 用户列表,如下所示:
username1 username1_group
username2 username2_group
...
usernameN usernameN_group
我已经尝试过,但我只发现:
cat /etc/passwd | grep /home | cut -d: -f1
它给出了 /home 文件夹中的用户列表。但我如何为每个用户添加组名?
答案1
尝试这个:
getent passwd | awk -F: '{print $1}' | while read name; do groups $name; done
答案2
getent passwd
...然后剪切您需要的部分。
此外,getent 的优点在于它会查看系统上的所有数据库。/etc/passwd 仅包含本地用户的信息,而不包含其他地方(如 LDAP、NIS 等)的信息。
答案3
群组列表为/etc/group
。
要获取特定用户所在组的列表,您可以运行
$ groups username
答案4
看看 /etc/group