Как заставить всех локальных пользователей изменить свой пароль

Как насчет расширения параметра bash?

$ var=20180402
$ echo "${var::4}-${var:4:2}-${var:6}"
2018-04-02
0
11.12.2019, 12:51
1 ответ

Помимо root, есть другие пользователи, которые являются демонами (менеджерами процессов ), которых не следует менять.

Я предлагаю выполнить следующую команду от имени пользователя root:

for user in $(grep "/home" /etc/passwd | cut -s -d':' -f1)
do
    passwd -e $user
done

Всегда проверяйте участки кода, особенно перед применением команды, изменяющей возможность входа пользователей в систему. Возможно, вам придется отменить свою работу в спешке, если вы ошиблись.

Сначала попробуйте следующее, чтобы убедиться, что у вас есть действительный список пользователей, срок действия пароля которых вы хотите удалить:

grep "/home" /etc/passwd | cut -s -d':' -f1

Из вырезать (1)справочную страницу:

cut - remove sections from each line of files

-s, --only-delimited
              do not print lines not containing delimiters

-d, --delimiter=DELIM
              use DELIM instead of TAB for field delimiter

-f, --fields=LIST
              select only these fields;  also print any line that contains
              no delimiter character, unless the -s option is specified

Я предлагаю создать нового пользователя, попробовать passwd -eс этим именем пользователя, выйти из системы и снова войти в систему, чтобы убедиться, что ожидаемое поведение получено, прежде чем применять ту же команду к другим пользователям.

1
28.01.2020, 02:38

Теги

Похожие вопросы