Я намагаюся масово встановити кілька паролів облікового запису користувача, використовуючи 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
це вбудована оболонка. Це не відображатиметься в таблиці процесів.