Команда для перечисления всех пользователей с их UID?

15

Как я могу перечислить всех пользователей вместе с их UID? Я хочу сделать это из терминала.

becko
источник
кошка / etc / passwd
Пантера

Ответы:

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

Больше информации здесь

AB
источник
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
heemayl
источник
1
Вы должны использовать getent passwdвместо / etc / passwd, так как последний не будет включать пользователей ldap
Daenyth
@Daenyth Мой первоначальный ответ состоял в том, что на самом деле .. затем, ради упрощения (и учитывая отсутствие ldap), я перешел на текущий… во всяком случае, отредактированный :)
Heemayl
1

В качестве альтернативы, чтобы перечислить всех пользователей, включая информацию UID и GID.

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

Ура,

Boschko
источник
0

Поскольку вы пытаетесь перечислить UID и имя пользователя, приведенная ниже команда лучше всего работает в Solaris. У них есть два awk

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

Mr_Macc
источник
0

Я считаю, что самый простой способ - это запустить webmin на вашем сервере и просто зайти в System> Users and Groups и там у вас есть красиво отформатированный список со всеми именами пользователей и группами с их uid, домашним каталогом и т. Д.

MitchellK
источник