Я пытаюсь массово установить несколько паролей учетных записей пользователей, используя 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это встроенная оболочка Это не появится в таблице процессов.