Вручную генерируйте пароль для/etc/shadow

Самое соответствующее место было бы под /srv.

112
18.08.2016, 06:36
9 ответов

Можно использовать следующие команды для того же:

Метод 1 (md5, sha256, sha512)

openssl passwd -6 -salt xyz  yourpass

Примечание: передача -1 генерирует пароль MD5, -5 SHA256 и -6 SHA512 (recommened)

Метод 2 (md5, sha256, sha512)

mkpasswd --method=SHA-512 --stdin

Методы принимают md5, sha-256 и sha-512

Метод 3 (des, md5, sha256, sha512)

Как @tink предложенный, мы можем обновить использование пароля chpasswd использование:

echo "username:password" | chpasswd 

Или можно использовать зашифрованный пароль с chpasswd. Сначала генерируйте его с помощью этого:

perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'

Затем позже можно использовать сгенерированный пароль для обновления:

echo "username:encryptedPassWd"  | chpasswd -e

Этот зашифрованный пароль мы можем использовать для создания нового пользователя с паролем, например:

useradd -p 'encryptedPassWd'  username
128
27.01.2020, 19:29
  • 1
    При использовании chpasswd -e, удостоверьтесь, что использовали одинарные кавычки на строке Вы echo в; иначе, если существует $ или другие специальные символы, их не будут рассматривать буквально. –  Zags 15.10.2014, 22:28
  • 2
    Указание, которые делают из них, закончится в Вашей истории оболочки. Я использовал бы openssl passwd -1 который 1) не заканчивается там и 2) генерирует случайную соль для Вас (который не заканчивается в истории оболочки, ни одном). –  Ztyx 22.09.2015, 15:20
  • 3
    openssl passwd documenation для любого пытающегося выяснять, что -1 опция делает. –  CivFan 29.10.2015, 23:55
  • 4
    Для хеша SHA-512: python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))' - от связанного вопроса –  CivFan 30.10.2015, 00:47
  • 5
    2) 1) и 2) выше использования MD5 для хеширования. MD5 больше не считают наиболее успешной практикой, поскольку были хэш-коллизии. Используйте метод 3) или тот, описанный в unix.stackexchange.com/a/198906/10911. –  Ztyx 11.01.2016, 11:04

На Ubuntu 12.04 есть mkpasswd (из пакета WHOIS): Перенапряженный передний конец для склепа (3)

mkpasswd  -m sha-512 -S saltsalt -s <<< YourPass

где:

  • -M = вычислять пароль с использованием метода типа. Если тип помогает, то доступные методы напечатаны.
  • -S = используется соль.

E.g.

$ mkpasswd -m help

-s = Read password from stdin
36
27.01.2020, 19:29

Для тех, у кого нет систем на базе Debian. Python3 работает так же хорошо.

python3 -c 'import crypt, getpass; print(crypt.crypt(getpass.getpass()))'

getpass.getpass () предложит вам ввести пароль в командной строке.

4
29.04.2021, 00:48

Это решение имеет следующие преимущества:

  • Никаких дополнительных действий для установки
  • Не сохраняет пароль в истории вашей оболочки
  • Создает случайную соль для вас
  • Использует современный надежный алгоритм хеширования SHA-512
  • Повторно запрашивает пароль, чтобы избежать ошибок.

     $ python3 -c "from getpass import getpass; from crypt import *; \ 
    p = getpass (); print ('\ n' + crypt (p, METHOD_SHA512)) \ 
    if p == getpass ('Повторите:') else print ('\ nНе удалось повторить.') "
     

Ссылки

19
29.04.2021, 00:48

Еще один метод генерации паролей - использование инструмента openssl .

Сгенерировать пароли MD5

openssl passwd -1 -salt SaltSalt SecretPassword
# output: $1$SaltSalt$FSYmvnuDuSP883uWgYBXW/

Сгенерировать пароли DES

openssl passwd -crypt -salt XR SuprScrt
# output: XR1dOp2EVMph2
3
20.08.2021, 13:09

Пара opensslи chpasswd -eне работала в моем случае в RHEL6. Комбинация команд openssl passwdи usermod -pсделала свое дело.

Сгенерируйте хеш-значение пароля вместе с солт-значением:

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43

$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

Затем скопируйте зашифрованную строку в usermod. Не забудьте заключить его в одинарные кавычки.

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

Проверьте это в теневом файле.

$ grep root /etc/shadow

root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::
3
20.08.2021, 13:09

Немного расширив критические замечания в адрес u150825 и Герта ван ден Берга, я обнаружил, что мне нужно что-то относительно гибкое для различных ситуаций с различными системами автоматизации. Я решил добавить в свою маленькую библиотеку полезных скриптов и написать это. Он использует только нативные библиотеки из python 2.7+ и точно так же работает на python3.

Вы можете забрать его здесь , если хотите. Так же легко добавить это в свою среду, если вам нужно часто его использовать, http-хостинг или что-то еще, и вы можете запустить его на любой платформе, используя любой доступный вам интерпретатор python по умолчанию, довольно надежно рассчитывая на его работу.

По умолчанию запрашивается с помощью getpass с подсказками на stderr (, что позволяет легко перехватывать stdout ), но если вы передаете ему строку, она будет просто пожинать со stdin. В зависимости от того, как вы это сделаете, он также может не отображаться в истории команд,так что просто осознавайте, с чем вы работаете. Мне нравится иметь гибкий инструмент, который будет вести себя ожидаемым образом, а не полагаться на пакеты или Python One -, прокладывающий мой путь к победе 10 разными способами.

1
20.08.2021, 13:09

В настоящее время у меня недостаточно репутации, чтобы комментировать. Я создал этот генератор паролей . Он использует метод № 1, описанный Рахулом Патилом.

-1
20.08.2021, 13:09

Как отмечают многие комментаторы. Указание вашей соли, не говоря уже о вашем пароле, является проблемой безопасности, потому что это делает возможным повторное использование солей. Повторное использование солей делает атаки по радужным таблицам на хэши ваших паролей гораздо более осуществимыми, а также делает очевидными, какие пользователи обмениваются паролями друг с другом (, изолируя и выделяя, вероятно, менее безопасные пароли, такие как 123456 или qwertyuiop ).

Вы не должны указывать свой пароль в командной строке (, потому что он сохраняется в истории оболочки, и даже если он будет удален, он все еще может находиться некоторое время в свободном пространстве вашего диска, особенно если вы с использованием файловой системы COW ). Вы вообще не должны вручную указывать свою соль. Вы можете добиться этого, просто используя:

openssl passwd -6

(-6указывает SHA512. Используйте -5для SHA256. Избегайте -1для MD5, если это возможно.)

OpenSSL дважды запросит у вас пароль через стандартный ввод и создаст случайную соль для каждого ввода.

0
20.08.2021, 13:09

Теги

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