Я настраиваю новую учетную запись в Linux для доступа к репозиторию Subversion и могу отправить пароль новому пользователю. Однако я думаю, что у этого нового пользователя была утилита командной строки для шифрования пароля, который ему нравится, в формате, который я могу скопировать / вставить непосредственно в файл / etc / shadow.
Какую полную команду этот новый пользователь должен запустить на консоли (например, Bash) для создания такого зашифрованного пароля?
ОБНОВЛЕНИЕ: пользователю не будет разрешено войти в систему, и учетная запись будет использоваться только для доступа svn + ssh: //. Следовательно, пользователь не может изменить его сам.
пользователь может выполнить на своем компьютере что-то вроде:
echo "password"|openssl passwd -1 -stdin
а затем отправим вам результат.
Формат пароля в тени может быть разным. Вы можете установить его как MD5 или старый добрый DES3 или ... Вы можете отправить своему пользователю пароль и заставить его изменить его при первом входе в систему (# chage -d 0 username
)
Вместо того, чтобы попросить их зашифровать пароль и отправить его вам, почему бы просто не попросить их ввести:
passwd
Он будет делать все, что вы хотите, с дополнительным преимуществом, заключающимся в том, что они могут изменять свои пароли без дополнительной работы для вас.
РЕДАКТИРОВАТЬ: Согласно этот, предположительно есть команда makepassword, которую вы можете получить для Debian / Ubuntu.
/ etc / passwd и / etc / shadow очень легко токенизировать с помощью обычных инструментов командной строки (например, grep, awk, sed, tr и т. д.).
Что интересно, так это фактическое поле хэша пароля в / etc / shadow, его префикс сообщает вам, как был зашифрован пароль. От человека (5) тень:
The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.
То, как он был зашифрован, во многом зависит от возраста установленной ОС. Важно обратить особое внимание на второе поле в / etc / shadow.
Вы должны приложить все усилия, чтобы следить за любым хешем, который использует система, будь то DES, MD5 и т. Д., Поскольку его так легко обнаружить.
Почему бы не перейти к пользователю с помощью SU и не запустить passwd?
Есть ли способ сгенерировать эти пароли через командную строку? Да, с пакетом debian makepasswd (но только для MD5):
echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.
Но это не сработает путем копирования и вставки в / etc / shadow. Чтобы изменить пароль через скрипт в некоторых дистрибутивах Linux, вы можете использовать:
echo oracle:mypasswd | chpasswd
или
echo -n mypasswd | passwd --stdin oracle