Můžete použít awk
pro tento úkol:
awk -F: '$3 >= 1000' /etc/passwd
Tím se rozdělí /etc/passwd
soubor dvojtečkou, pak pokud je pole 3 (uživatelské jméno) větší nebo rovno 1000, vytiskne celý /etc/passwd
záznam.
Pokud chcete z tohoto seznamu získat pouze uživatelské jméno, pak:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Kde $1 je první pole z etc/passwd
což je uživatelské jméno.
Předpokládejme, že systém rozpoznává pouze místní uživatele (tj. uživatele zaznamenané v /etc/passwd
, na rozdíl od jakýchkoli ověřených prostřednictvím vzdálené služby, jako je LDAP, NIS nebo Winbind), můžete použít grep
, sed
nebo awk
extrahovat data z /etc/passwd
. awk
je nejflexibilnější z nich, ale co takhle řešení s sed
:
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Potřebujete získat všechny uživatele, jejichž gid
je větší nebo rovno 1000. Použijte k tomu tento příkaz:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Pokud chcete systémové uživatele (gid<1000), bude to:
awk -F: '($3<1000){print $1}' /etc/passwd