命令列出所有具有其UID的用户?


Answers:


17

列出具有/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

更多信息在这里


10

您只需使用即可轻松找到它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

1
您应该使用getent passwd/ etc / passwd而不是/ etc / passwd,因为后者不包括ldap用户
Daenyth

@Daenyth 我的最初答案是实际上..then 为了简化起见(并考虑否ldap),我已移至当前版本。.无论如何编辑:)
heemayl 2015年

1

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

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

干杯,


0

因为您尝试列出UID和用户名,所以以下命令在Solaris上效果最好。他们有两个awk

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


0

我发现最简单的方法是在您的服务器上安装webmin,然后直接转到“系统”>“用户和组”,在那里您可以看到一个格式良好的列表,其中包含所有用户名和组及其uid,主目录等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.