Ответ 1
Ключ увидел, что значение атрибута пароля записывается непосредственно в файл /etc/shadow. Это был вопрос чтения страниц-страниц для тени и склепа и, наконец, понимания (надеюсь), как все сочетается. См. "Сведения о горах" ниже, если вас интересует какой-то фон.
Если вы в порядке с хешем MD5 пароля, используйте команду openssl для генерации зашифрованной строки. Используемая версия не поддерживает алгоритмы SHA. Используйте openssl passwd --help, чтобы узнать, какие опции доступны для вас.
openssl passwd -1 -salt "yoursaltphrase"
Password: <enter the password>
$1$yoursalt$fIque2U6AZ.YRAqOu5Eyo/
Теперь используйте эту строку в атрибуте пароля рецепта:
user 'mytestuser' do
comment "Test User"
home "/home/mytestuser"
shell "/bin/bash"
supports :manage_home => true
password '$1$yoursalt$fIque2U6AZ.YRAqOu5Eyo/'
action :create
end
Что касается меня, я закончил создание тестового пользователя вручную, а затем скопировал его строку шифрования из /etc/shadow в качестве значения атрибута пароля для рецепта.
Из/etc/shadow второе поле после mytestuser: это зашифрованный пароль.
mytestuser:THIS_IS_THE_FIELD_YOU_WANT:16063:0:99999:7:::
См. тень человека и склеп человека.
Детали Gory
Собирая вещи вместе с man-страницами и различными форумами пользователей, вот что я узнал. Обратите внимание, что термин, зашифрованный здесь, на самом деле означает хеширование, поскольку я не считаю, что пароли могут быть дешифрованы.
Команда passwd шифрует пользовательский текстовый пароль и записывает его в /etc/shadow.
Записи/etc/shadow содержат имя пользователя и зашифрованный пароль в одном из различных форматов. Страница руководства для "crypt" описывает эти форматы, см. Раздел "ПРИМЕЧАНИЯ".
Зашифрованное значение имеет формат:
$id$salt$encrypted
Подумайте об этом как о двух частях: соли и фактическом зашифрованном пароле.
Соляная часть состоит из двух частей:
- Дополнительный префикс id, который идентифицирует используемый алгоритм шифрования и имеет "$" в качестве префикса и суффикса, например. "$ ID $".
- Значение соли, которое может содержать до 16 символов и заканчивается символом "$", например. "Saltvalue $". Это значение используется для вычисления зашифрованного пароля. Это случайная строка и отличается при каждом создании пароля.
Идентификатор может быть одним из следующих, указывая используемый алгоритм шифрования:
blank = DES (the default when no $id$ prefix is found)
1 = MD5
2a = Blowfish
5 = SHA-256
6 = SHA-512
Длина зашифрованного пароля фиксируется на основе алгоритма шифрования:
DES = 8 characters
MD5 = 22 characters
SHA-256 = 43 characters
SHA-512 = 86 characters
Blowfish = ???
Вы можете использовать команду openssl passwd для генерации различных хэшей паролей. Он поддерживает параметры:
-crypt DES-based standard Unix password algorithm (default)
-1 MD5-based password algorithm
-apr1 MD5-based password algorithm, Apache variant
-salt string use provided salt