Как закодировать пароль пользователя в Linux

При написании скриптов на Bash для автоматизации создания нового пользователя Linux так, как например описано в → этой статье (с помощью команды useradd) не достаточно просто передать пароль в эту команду. Передаваемый пароль должен быть зашифрован. Иначе, при создании нового пользователя, значение его пароля будет сохранено «как есть», а при попытке входа этого пользователя в систему, пароль будет кодироваться. И пользователь не сможет залогиниться так как обычно закодированный вариант пароля и его вводимое значения не совпадают. В этой статье подробно рассмотрим, как передавать в систему закодированную версию пароля пользователя.



Какой пароль пользователя нужен для команды useradd в Линукс

Для начала разберёмся с тем, какой пароль пользователя нужен для команды useradd в Debian. Для этого, как было подробно рассмотрено в статье по ссылке во вступлении, посмотрим мануал этой команды и увидим, что опция -p, необходимая для передачи пароля, требует:

-p, --password PASSWORD       encrypted password of the new account

зашифрованного варианта ввода пароля.

Значит, то, что нужно передать в систему должно быть сначала зашифровано. Сразу покажу, как это сделать, а потом накидаю, куда смотреть, если понадобятся подробности.

Команда для шифрования пароля пользователя в Linux

Итак, зашифровать пользователь в том виде, в котором он требуется для правильной работы с авторизацией пользователей в Линукс, можно таким способом:

encpass=$(openssl passwd -crypt ТУТпароль)

В примере выше, зашифрованная версия пароля сохранится в переменной encpass.

Для шифрования используется функция openssl с параметрами passwd и -crypt, ну и, собственно, передаётся само значение пароля в не зашифрованном виде.

Подробное описание функции openssl можно прочитать в мануале, вызвав его man openssl.

Краткую подсказку по функции openssl можно получить, введя openssl help. При этом будет выдан список стандартных и прочих команд по управлению процессом шифрования.

Резюме

Более подробно рассматривать разные режимы шифрования, их алгоритмы, принципы передачи и хранения данных, мне пока не интересно. Самое главное — вопрос, как создавать пользователя, передавая значение его пароля в систему через переменную, рассмотрен, опробован и оказался работоспособен.

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню