Подсчитать количество записей в /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}')))
Это просто подсчитывает записи, которые вообще не имеют пароля