Как кто-то должен создать зашифрованный пароль для / etc / shadow?

9

Я настраиваю новую учетную запись в окне Linux для доступа к хранилищу Subversion и могу отправить пароль новому пользователю. Тем не менее, я думаю, что для этого нового пользователя была утилита командной строки, которая шифрует пароль, который ему нравится, в формате, который я могу скопировать / вставить непосредственно в файл / etc / shadow.

Какова была полная команда, которую этот новый пользователь должен запустить на консоли (например, Bash), чтобы создать такой зашифрованный пароль?

ОБНОВЛЕНИЕ: пользователю не будет разрешено войти в систему на компьютере, а учетная запись будет просто использоваться для доступа svn + ssh: //. Следовательно, пользователь не может изменить это сам.

Эгон Виллихаген
источник
Пользователь спрашивает о сценариях bash, поскольку он, очевидно, не собирается делать это вручную.
Тим Пост

Ответы:

15

пользователь может выполнить на своем компьютере что-то вроде:

echo "password"|openssl passwd -1 -stdin

а затем вышлю вам вывод.

Даниил
источник
+1 делает именно то, что вы ищете.
Антуан Бенкемун
Почему эта команда дает разное значение каждый раз, когда я ее вызываю?
Egon Willighagen
2
Формат вывода - $ id $ salt $ в зашифрованном виде. Разные идентификаторы и разные соли дают разные зашифрованные строки. Идентификатор используется алгоритм: 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Гонсало
Хорошо, поэтому мне нужно выяснить, как вызвать определенный идентификатор (который был одинаковым все время) и соль (который менялся при каждом вызове) ... имеет смысл.
Egon Willighagen
2

Формат пароля в тени может варьироваться. Вы можете установить его как MD5 или старый добрый DES3 или ... Вы хорошо отправляете своему пользователю пароль и заставляете его изменить его при первом входе в систему ( # chage -d 0 username)

Гонсало
источник
1

Вместо того, чтобы они шифровали пароль и отправляли его вам, почему бы просто не сказать им набрать:

passwd

Он будет делать все, что вы хотите с дополнительным преимуществом, что они могут изменить свои пароли без дополнительной работы для вас.

РЕДАКТИРОВАТЬ: Согласно этому , якобы есть команда под названием makepassword, которую вы можете получить для Debian / Ubuntu.

Брендан Лонг
источник
Поскольку для этого требуется, чтобы пользователь уже вошел в систему. ОП хочет, чтобы решение для безопасной установки пароля было выполнено до того, как пользователь войдет в систему в первый раз.
Даниэль Приден
1
Кажется, что случайное генерирование пароля и его изменение при входе в систему столь же безопасно, как и создание пароля и добавление его вручную.
Брендан Лонг
Пользователь фактически никогда не будет входить в систему (shell: / bin / false) и только разрешит SVN доступ для чтения / записи ...
Egon Willighagen
2
Вы можете установить shell: / usr / bin / passwd: D
Брендан Лонг
1
Я имею в виду последний комментарий как шутку, но, видимо, он будет работать: markmail.org/message/ekuxvnhdagywy4i5
Брендан Лонг,
0

/ 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 и т. Д., Поскольку его так легко обнаружить.

Тим Пост
источник
0

Почему бы не SU для пользователя и запустить passwd?

Эсбен Сков Педерсен
источник
Потому что я не хочу знать пароль ... или отправить его мне в незашифрованном виде.
Egon Willighagen
0

Есть ли способ генерировать эти пароли через командную строку? Да, с пакетом 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

источник