Как зашифровать пароль нового пользователя с помощью команды useradd?

Я хотел бы создать зашифрованный пароль для входа в систему для нового пользователя, используя команду useradd в CLI. Я знаю, что использование опции -p позволит мне создать пароль, но использование этой опции не шифрует пароль. Я также знаю, что могу создать зашифрованный пароль с помощью команды passwd [username] отдельно после того, как новый пользователь был создан с помощью useradd, но, как я уже сказал, я хотел бы знать, как создать зашифрованный пароль с помощью useradd команда.

1
задан 1 April 2016 в 07:07

4 ответа

Так как passwd не поддерживает - stdin в Ubuntu, Вы могли попробовать это:

perl -e "print crypt('password','sa');"

см. https://administratosphere.wordpress.com/2011/06/16/generating-passwords-using-crypt3 /

0
ответ дан 1 April 2016 в 17:07
  • 1
    @ReillyShaughnessy Извините я исчезаю некоторое время. Я видел Ваш поток ниже, довольный услышать, что Вы читаете ссылки, и получил шаг вперед. Теперь, могли Вы описывать, немного больше как является Вами соединение и что делает, Вы подразумеваете под " подключение с passkey"? Вы используете администратора сети или командную строку? Что-то еще? – user3325563 16 August 2017 в 15:29

Вы могли пропустить целую 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.
0
ответ дан 1 April 2016 в 17:07
  • 1
    Рассмотренный потоки и ссылка, но I' m слишком много newby для понимания то, что он сделал. Любая справка на пошаговой основе ценилась бы. – Reilly Shaughnessy 10 August 2017 в 06:27

Вы могли использовать 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)\$\")")" [...]
0
ответ дан 1 April 2016 в 17:07
  • 1
    Продукт: usb 1-5 NIC [67692.673204] на 802.11 акра: Производитель: usb 1-5 Realtek [67692.673207]: SerialNumber: 123456 – Reilly Shaughnessy 10 August 2017 в 06:34

Вы можете использовать «useradd -p ENCRYPTED-passwd», вам нужен весь пароль, включая определение типа шифрования, и вам нужно экранировать все без исключения $, кроме тех, которые, похоже, работают нормально.

Просто создайте случайного одноразового пользователя, установите для него пароль, который вы хотите использовать, затем скопируйте его пароль из теневого файла, скопируйте все от первого до второго «:» в теневом файле и используйте его после -p.

1
ответ дан 15 January 2020 в 11:12

Другие вопросы по тегам:

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