Awk, aby ukryć wszystkich moich zwykłych użytkowników


8

Mam scenariusz

Chcę uzyskać wszystkich moich zwykłych użytkowników od /etc/shadownp. Wszystkich użytkowników, których drugi termin w pliku cienia zaczyna się od $lub !$.

Mój wzór to

sudo getent shadow | awk -F: '$2 ~ /^$/ || /^!$/ {print $1}'

Na razie nie działa.


czy to musi być awk? :-)
Rinzwind,

Odpowiedzi:


11

Musisz uciec $, ponieważ jest to specjalny znak dla „End of Line”, podobnie jak ^„Beginning of Line”.

sudo getent shadow | awk -F: '$2 ~ /^\$/ || $2 ~  /^!\$/ {print $1}'

+1 dobry haczyk :)
Rinzwind

Dzięki, działa. Po prostu muszę nie uwzględniać użytkownika root
danaso,

1
Uproszczone: awk -F: '$2 ~ /^!?\$/ {print $1}'- Łączy dwa testy dopasowania i mówi „dopasuj znak dolara na początku pola, opcjonalnie ( ?) poprzedzony przez !
Wstrzymano do odwołania.

4

Wszystkich użytkowników z ustawionym hasłem można wymienić w następujący sposób:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.