Як хтось повинен створити зашифрований пароль для / 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
Gonzalo

Гаразд, тому мені потрібно розібратися, як запустити певний ідентифікатор (який був весь час однаковий) та сіль (яка змінювалася з кожним дзвінком) ... має сенс.
Egon Willighagen

2

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


1

Замість того, щоб вони зашифрували пароль і надіслали вам його, чому б просто не сказати їм набрати:

passwd

Це зробить все, що ви хочете, з додатковою перевагою, що вони можуть змінювати свої паролі без зайвої роботи для вас.

EDIT: Відповідно до цього , існує нібито команда під назвою 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

Чи існує спосіб створення цих паролів за допомогою командного рядка? Так, з пакетом 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.