Генерация .htpasswd файла для HTTP-аутентификации

Для реализации HTTP-аутентификации у себя на сервере вам потребуется создать файл, в котором будут храниться учетные данные пользователя.

Например, для пользователя admin с паролем 1234567890 содержимое файла будет выглядеть следующим образом:

admin:$apr1$x.EtyPS5$nSE6Zcy8mewXqv2f4ilFU1

Чтобы сгенерировать файл с таким содержимым можно воспользоваться утилитой htpasswd, которая обычно поставляется с пакетом Apache.

Если она у вас не установлена, это можно сделать командой:

Bash
apt install apache2-utils


Далее, что бы непосредственно сгенерировать файл, нужно выполнить команду:

Bash
htpasswd -b -c $HTPASSWD_FILE $USERNAME $PASSWORD

где:

  • $HTPASSWD_FILE — имя генерируемого файла, например usersfile.htpasswd
  • $USERNAME — имя пользователя, например admin
  • $PASSWORD — пароль, например 1234567890

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

Bash
#!/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, а затем запустите его, передавая имя пользователя и пароль в качестве аргументов:

Bash
./create_htpasswd.sh username password


Этот скрипт создаст новый файл usersfile.htpasswd и сохранит в него пару username:password.


Если вам интересен наш проект, есть вопросы, замечания, или предложения — оставляйте комментарии или пишите на почту: checkerwars@mail.ru

Кроме того, автор проекта ищет работу. Мое резюме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *