Awk para colocar todos os meus usuários regulares na sombra


8

Eu tenho um roteiro.

Eu quero obter todos os meus usuários regulares, por /etc/shadowexemplo, todos os usuários cujo segundo termo no arquivo sombra começa com $ou !$.

Meu padrão é

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

Não funciona por enquanto.


tem que ser awk? :-)
Rinzwind 5/08/19

Respostas:


11

Você precisa escapar do $, pois é um caractere especial para "End of Line", assim como ^é "Beginning of Line".

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

+1 boa captura :)
Rinzwind 5/08/19

Obrigado, funciona. Eu só preciso não incluem usuário root
danaso

1
Simplificado: awk -F: '$2 ~ /^!?\$/ {print $1}'- Combina os dois testes de correspondência e diz "corresponder a um sinal de cifrão no início do campo, opcionalmente ( ?) precedido por um !"
Pausado até novo aviso.

4

Todos os usuários com um conjunto de senhas podem ser listados assim:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.