Подсчитать количество записей в /etc/passwd без пароля?
Как я могу посчитать количество /etc/password
записи, которые не имеют пароля?
2 ответа
Я думаю, что для поиска записей без установленного пароля, вам придется использовать /etc/shadow
:
sudo grep -Ec '\!|\*' /etc/shadow
!
а также *
символы указывают на отсутствие пароля Unix для пользователя, например:
root:!:17092:0:99999:7:::
colord:*:17086:0:99999:7:::
Записи в /etc/shadow
соответствуют тем в /etc/passwd
Вместо подсчета вы можете получить чистый список только имен пользователей:
sudo grep -E '\!|\*' /etc/shadow | grep -o '^[^:]*'
Ты можешь использовать -v
чтобы инвертировать совпадение и подсчитать или вывести список пользователей с паролями, конечно:
sudo grep -vE '\!|\*' /etc/shadow | grep -o '^[^:]*'
Заметки:
-E
использовать ERE, чтобы мы могли использовать|
для чередования-c
вернуть количество строк, а не сами строки-o
просто распечатайте соответствующую часть'^[^:]*'
от начала линии до первого:
echo $(($(cat /etc/passwd | egrep "^*:x" | wc | awk '{print $1}')-$(cat /etc/passwd | wc | awk '{print $1}')))
Это просто подсчитывает записи, которые вообще не имеют пароля