Автоматизировать установку и проверку пароля

Я использую это для установки паролей в скрипте:

usermod -p `mkpasswd -H md5 passwordText` user

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

Редактировать: Я наконец обнаружил проблему со строкой выше. Пароль разрешал символы, которые интерпретировались как символы подстановки в командной строке, создавая впечатление, что сама команда не выполнена. Тем не менее, это привело меня к новым вещам, которые я рад, что теперь знаю.

3
задан 2 March 2012 в 10:34

2 ответа

Вместо обращения к теневому файлу, почему бы просто не сделать:

usermod -p `mkpasswd -H md5 passwordText` user

if [ $? -ne 0 ]; then
    echo "Changing password failed!!!!!!"
fi

Вы можете заменить все, что хотите в блоке if, но если команда когда-нибудь не удалась для usermod, то она верну ненулевой статус.

0
ответ дан 2 March 2012 в 10:34

Пароль хранится в /etc/shadow и можно попытаться подтвердить это с Джоном превосходный человек.

Я не уверен, позволяются ли отправляющие учебные руководства для Джона здесь, раз так я могу записать тот достаточно легко, но если не поиск Google покажет Вам как.

В последний раз я смотрел, John был нужен патч, но отчет об ошибках на панели запуска, казалось, указал, что патч был включен в repos, таким образом, я попробую неисправленную версию сначала (я знаю, ленивый =)).

За исключением Джона, su - test_user -> вводят пароль.

Информируйте учебное руководство о Джоне превосходный человек:

Установка Джон

sudo apt-get install john

Подготовьте рабочую базу данных (я сделал пользователя "тестом" со слабым паролем для этого примера).

sudo unshadow /etc/passwd /etc/shadow > password.db

Выполните Джона

john password.db

Loaded 2 password hashes with 2 different salts (generic crypt(3) [?/64])
Remaining 1 password hash
guesses: 0  time: 0:00:00:03 0% (2)  c/s: 222  trying: monday - emily

Как Вы видите, Джон взломал слабый пароль за 0,03 секунды, мой пароль пользователя слишком силен для Джона, таким образом, я прервал его с Crtl + c

Покажите пароль

john --show password.db

test:testing:1001:1001:,,,:/home/test:/bin/bash

1 password hash cracked, 1 left

Здесь мы видим пользователя "тест" с паролем "тестирование"

su test
Password: 

test@ufbt:/home/test

1
ответ дан 2 March 2012 в 10:34

Другие вопросы по тегам:

Похожие вопросы: