命令列出所有用户及其 UID?

命令列出所有用户及其 UID?

我如何列出所有用户及其 UID?我想从终端执行此操作。

答案1

列出拥有/home文件夹的所有用户:

awk -F: '/\/home/ {printf "%s:%s\n",$1,$3}' /etc/passwd

或所有具有以下项的用户UID >= 1000

awk -F: '($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd

组合

awk -F: '/\/home/ && ($3 >= 1000) {printf "%s:%s\n",$1,$3}' /etc/passwd

或所有条目

awk -F: '{printf "%s:%s\n",$1,$3}' /etc/passwd

更多信息这里

答案2

您只需使用以下方法即可轻松找到它cut

cut -d: -f1,3 /etc/passwd
  • -d:设置分隔符:cut

  • -f1,3从文件:中提取仅以 分隔的字段 1 和 3/etc/passwd

检查man cut以获得更多想法。

例子 :

$ cut -d: -f1,3 /etc/passwd
root:0
daemon:1
bin:2
sys:3
sync:4
games:5
......

如果已ldap配置,则将用户包含ldap在输出中:

getent passwd | cut -d: -f1,3

答案3

或者列出所有用户,包括 UID 和 GID 信息。

for user in $(cat /etc/passwd | cut -f1 -d":"); do id $user; done 

干杯,

答案4

我发现最简单的方法是在您的服务器上安装 webmin,然后只需转到系统>用户和组,您就会得到一个格式良好的列表,其中包含所有用户名和组及其 uid、主目录等。

相关内容