LinuxForum.Fans
Тема

Проверка пароля. Прошу помощи.

Автор: caspar 3 сообщений 1019 просмотров
18.01.2021 23:10 #435843

Имеется файл ./pass-file созданный с помощью htpasswd, в котором записан пароль 123456 для единственного пользователя user.
Содержимое этого файла:

text
user:0aVDMt3JbwKEk

Надо в скрипте проверить этот пароль и результат проверки передать переменной.
Проверяем сначала без передачи в переменную. Файл test.sh:

text
#!/bin/bash

echo правильный пароль pass1="123456" htpasswd -vb pass-file user $pass1

echo неправильный пароль pass2="1234567" htpasswd -vb pass-file user $pass2

Проверяем:
[console]$ ./test.sh
правильный пароль
Password for user user correct.
неправильный пароль
password verification failed
[/console]

Вроде все работает. Модернизируем скрипт test1.sh (не заморачиваясь пока излишним выводом на экран):

text
#!/bin/bash

echo правильный пароль pass1="123456" message1=$(htpasswd -vb pass-file user $pass1)

echo неправильный пароль pass2="1234567" message2=$(htpasswd -vb pass-file user $pass2)

echo message1=$message1" "message2=$message2

Проверяем:
[console]$ ./test1.sh
правильный пароль
Password for user user correct.
неправильный пароль
password verification failed
message1= message2=
[/console]

И убеждаемся, что в переменную ничего не передается (ни строка ни число).
Голову сломал, пытаясь найти, в чем косяк.

19.01.2021 04:41 #435844

Если тебе просто результат проверки нужен, то наверняка он в коде выхода сохраняется.

Попробуй так:

text
#!/bin/bash

echo правильный пароль pass1="123456" htpasswd -vb pass-file user $pass1 message1=$?

echo неправильный пароль pass2="1234567" htpasswd -vb pass-file user $pass2 message2=$?

echo message1=$message1" "message2=$message2

19.01.2021 07:28 #435845

Vascom,
Спасибо. Так сработало :)

Войдите или зарегистрируйтесь, чтобы ответить.