Прошу, щоб усі мої постійні користувачі перебувають у тіні


8

У мене є сценарій.

Я хочу отримати всіх моїх постійних користувачів, /etc/shadowнаприклад, від усіх користувачів, у яких другий термін у тіньовому файлі починається з $або !$.

Моя картина така

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

Наразі це не працює.


це має бути дивним? :-)
Rinzwind

Відповіді:


11

Вам потрібно уникнути $, оскільки це спеціальний знак для "Кінець рядка", як ^"Початок рядка".

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

+1 хороший улов :)
Rinzwind

Дякую, це працює. Мені просто не потрібно включати root користувача
danaso

1
Спрощено: awk -F: '$2 ~ /^!?\$/ {print $1}'- Це поєднує в собі два тесту на відповідність і говорить "відповідати знаку долара на початку поля, необов'язково ( ?), якому передує знак !"
Призупинено до подальшого повідомлення.

4

Усі користувачі з набором пароля можуть бути перелічені таким чином:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.