Я пытаюсь массово установить несколько паролей учетных записей пользователей, используя chpasswd
. Пароли должны генерироваться случайным образом и распечатываться stdout
(мне нужно записать их или поместить в хранилище паролей), а также передать в chpasswd
.
Наивно, я бы сделал это так
{
echo student1:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '')
echo student2:$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '')
} | tee >(chpasswd)
Однако я беспокоюсь о передаче нового пароля в качестве аргумента командной строки echo
, потому что аргументы обычно видны другим пользователям ps -aux
(хотя я никогда не видел, чтобы в них echo
появлялась какая-либо строка ps
).
Есть ли альтернативный способ добавить значение к моему возвращенному паролю, а затем передать его в chpasswd
?
echo
это встроенная оболочка Это не появится в таблице процессов.