Список всех пользователей, не являющихся системными [дубликат]

На этот вопрос уже есть ответ здесь:

Я хочу знать список всех пользователей, созданных в моей системе. Мне нужны несистемные пользователи.

Я знаю, что файл / etc / passwd содержит всех пользователей

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
messagebus:x:102:104::/var/run/dbus:/bin/false
colord:x:103:108:colord colour management daemon,,,:/var/lib/colord:/bin/false
lightdm:x:104:111:Light Display Manager:/var/lib/lightdm:/bin/false
whoopsie:x:105:114::/nonexistent:/bin/false
avahi-autoipd:x:106:117:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:107:118:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:108:46:usbmux daemon,,,:/home/usbmux:/bin/false
kernoops:x:109:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:110:119:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:111:122:RealtimeKit,,,:/proc:/bin/false
saned:x:112:123::/home/saned:/bin/false
speech-dispatcher:x:113:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
hplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/false
user1:x:1000:1000:user1,,,:/home/user1:/bin/bash
user2:x:1001:1001:user2,,,:/home/user2:/bin/bash
user3:x:1002:1002:user3,,,:/home/user3:/bin/bash
user4:x:1003:1003:user4,,,:/home/user4:/bin/bash
xrdp:x:115:126::/var/run/xrdp:/bin/false
lxc-dnsmasq:x:116:128:LXC dnsmasq,,,:/var/lib/lxc:/bin/false
clamav:x:117:129::/var/lib/clamav:/bin/false
dhcpd:x:118:132::/var/run:/bin/false
liquidsoap:x:119:133::/usr/share/liquidsoap:/bin/false
sshd:x:120:65534::/var/run/sshd:/usr/sbin/nologin

Но, как вы можете видеть, файл может стать очень большим по мере установки дополнительных служб, и я не могу просто открыть и легко искать несистемных пользователей.

Итак, мне нужна простая команда, чтобы вывести список этих пользователей. Спасибо

0
задан 21 March 2014 в 11:12

2 ответа

Я не очищаю решение. Но я могу помочь Вам найти реальных пользователей.

Первое решение:

в /etc/passwd, продержитесь столбец, показывающий оболочку/команду по умолчанию. В Ubuntu это обычно /bin/bash, но это не правило. Таким образом, можно попробовать:

sudo grep '/bin/bash'/etc/passwd | сокращают-d:-f1

Также обычно реальные пользователи размещает папку, расположенную в /home. Можно попробовать:

sudo grep '/home /'/etc/passwd | сокращают-d:-f1

Или они оба:

sudo grep-E '/home. */bin/bash'/etc/passwd | сокращают-d:-f1

Второе решение:

существует также файл /etc/shadow, где во втором столбце зашифровал пользовательские пароли . У системных программ и демонов нет паролей, обычно. Здесь можно попробовать:

sudo awk-F: '2$! = "*" & & 2$! ~/^!/{печатают 1$, "-имеет pwd"}'/etc/shadow

, Но поймите, все это решение, не 'ясное'. Иногда пользователи могут создать там домашние папки в других местах, они могут войти в систему без паролей, и их оболочка/команда по умолчанию может быть любым, такой как zsh, sh, ksh и т.д.

2
ответ дан 8 October 2019 в 10:57

Другой способ сделать это было бы

getent passwd | tr ":" " " | awk "\$3 >= $(grep UID_MIN /etc/login.defs | cut -d " " -f 2) { print \$1 }" | sort| uniq|sed -e 's/nobody//g'
0
ответ дан 8 October 2019 в 10:57

Другие вопросы по тегам:

Похожие вопросы: