Awk pour obtenir tous mes utilisateurs réguliers dans l'ombre


8

J'ai un script.

Je veux obtenir tous mes utilisateurs réguliers, par /etc/shadowexemple de tous les utilisateurs dont le deuxième terme dans le fichier fantôme commence par $ou !$.

Mon modèle est

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

Ça ne marche pas pour l'instant.


faut-il que ce soit génial? :-)
Rinzwind

Réponses:


11

Vous devez échapper au $, car il s'agit d'un caractère spécial pour "Fin de ligne" tout comme ^"Début de ligne".

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

+1 bonne prise :)
Rinzwind

Merci, ça marche. J'ai juste besoin de ne pas inclure l'utilisateur root
danaso

1
Simplifié: awk -F: '$2 ~ /^!?\$/ {print $1}'- Ceci combine les deux tests de correspondance et dit "correspondre à un signe dollar au début du champ, éventuellement ( ?) précédé d'un !"
Pause jusqu'à nouvel ordre.

4

Tous les utilisateurs avec un mot de passe peuvent être répertoriés comme ceci:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.