Я хотел бы создать зашифрованный пароль для входа в систему для нового пользователя, используя команду useradd
в CLI. Я знаю, что использование опции -p
позволит мне создать пароль, но использование этой опции не шифрует пароль. Я также знаю, что могу создать зашифрованный пароль с помощью команды passwd [username]
отдельно после того, как новый пользователь был создан с помощью useradd
, но, как я уже сказал, я хотел бы знать, как создать зашифрованный пароль с помощью useradd
команда.
Так как passwd не поддерживает - stdin в Ubuntu, Вы могли попробовать это:
perl -e "print crypt('password','sa');"
см. https://administratosphere.wordpress.com/2011/06/16/generating-passwords-using-crypt3 /
Вы могли пропустить целую administrator-created-password стычку управления пользователями путем создания идентификатора пользователя, затем использования passwd --expire
на нем. От man passwd
:
-e, --expire
Immediately expire an account's password. This in effect can force
a user to change his/her password at the user's next login.
Вы могли использовать Perl:
perl -e "print crypt(\"foo\", \"\$6\$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
Или Python с crypt
модуль:
python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
foo
: пароль для шифрования $6
: тип шифрования, в этом случае SHA-512 $(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)
: соль шифрования, в этом случае случайные 32 символьных строки. В сочетании с useradd
:
useradd [...] -p"$(perl -e "print crypt(\"foo\", \"\$6\$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Или:
useradd [...] -p"$(python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Вы можете использовать «useradd -p ENCRYPTED-passwd», вам нужен весь пароль, включая определение типа шифрования, и вам нужно экранировать все без исключения $, кроме тех, которые, похоже, работают нормально.
Просто создайте случайного одноразового пользователя, установите для него пароль, который вы хотите использовать, затем скопируйте его пароль из теневого файла, скопируйте все от первого до второго «:» в теневом файле и используйте его после -p.