Awk per mettere in ombra tutti i miei utenti regolari


8

Ho una sceneggiatura.

Voglio ottenere tutti i miei utenti regolari, /etc/shadowad esempio da tutti gli utenti con cui inizia il secondo termine nel file shadow $o !$.

Il mio modello è

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

Per ora non funziona.


deve essere stupido? :-)
Rinzwind

Risposte:


11

È necessario sfuggire a $, in quanto è un carattere speciale per "Fine linea", proprio come ^è "Inizio della linea".

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

+1 buona cattura :)
Rinzwind

Grazie, funziona Devo solo non includere l'utente root
danaso,

1
Semplificato: awk -F: '$2 ~ /^!?\$/ {print $1}'- Questo combina i due match test e dice "abbina un segno di dollaro all'inizio del campo, opzionalmente ( ?) preceduto da un !"
In pausa fino a nuovo avviso.

4

Tutti gli utenti con una password impostata possono essere elencati in questo modo:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.