Для реализации HTTP-аутентификации у себя на сервере вам потребуется создать файл, в котором будут храниться учетные данные пользователя.
Например, для пользователя admin с паролем 1234567890 содержимое файла будет выглядеть следующим образом:
admin:$apr1$x.EtyPS5$nSE6Zcy8mewXqv2f4ilFU1
Чтобы сгенерировать файл с таким содержимым можно воспользоваться утилитой htpasswd
, которая обычно поставляется с пакетом Apache.
Если она у вас не установлена, это можно сделать командой:
apt install apache2-utils
Далее, что бы непосредственно сгенерировать файл, нужно выполнить команду:
htpasswd -b -c $HTPASSWD_FILE $USERNAME $PASSWORD
где:
$HTPASSWD_FILE
— имя генерируемого файла, напримерusersfile.htpasswd
$USERNAME
— имя пользователя, например admin$PASSWORD
— пароль, например 1234567890
В конечном итоге можно сделать скрипт, который который будет генерировать такой файл:
#!/bin/bash
# Проверяем количество аргументов
if [ $# -ne 2 ]; then
echo "Использование: $0 имя_пользователя пароль"
exit 1
fi
# Сохраняем аргументы в переменные
USERNAME=$1
PASSWORD=$2
# Файл для хранения паролей
HTPASSWD_FILE="usersfile.htpasswd"
# Проверяем наличие утилиты htpasswd
if ! command -v htpasswd &> /dev/null
then
echo "Утилита htpasswd не найдена. Установите пакет apache2-utils или аналогичный."
exit
fi
# Создаем или обновляем .htpasswd файл
# -b для использования в режиме batch, -c для создания нового файла
htpasswd -b -c $HTPASSWD_FILE $USERNAME $PASSWORD
echo "Пользователь $USERNAME добавлен в $HTPASSWD_FILE"
Сохраните этот скрипт в файл, например, create_htpasswd.sh
, сделайте его исполняемым с помощью команды chmod +x create_htpasswd.sh
, а затем запустите его, передавая имя пользователя и пароль в качестве аргументов:
./create_htpasswd.sh username password
Этот скрипт создаст новый файл usersfile.htpasswd
и сохранит в него пару username:password.
Если вам интересен наш проект, есть вопросы, замечания, или предложения — оставляйте комментарии или пишите на почту: checkerwars@mail.ru
Кроме того, автор проекта ищет работу. Мое резюме.