# htpasswd

{% embed url="https://httpd.apache.org/docs/2.4/programs/htpasswd.html" %}

## Встановити пароль доступу до директорії сайту

Використовуємо htpasswd для встановлення паролю для користувача ans на директорію /test сайту site.com:

```
~/web/site.com/public_html/test$ htpasswd -c .htpasswd ans
New password: 
Re-type new password: 
Adding password for user ans
```

`-c` - створює **новий файл** .htpasswd, що буде містити паролі користувачів. Коли такий файл вже існує і нам потрібно лише додати ще одного користувача, або змінити пароль існуючого - цей ключ **НЕ** використовуємо.

Додаємо у .htaccess файл директорії test такий блок:

```
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/serveruser/web/site.com/public_html/test/.htpasswd
Require valid-user
```

## З інету

Встановлення паролю на директорію сайту може залежати від типу веб-сервера, який ви використовуєте. Однак основна ідея полягає в тому, щоб використовувати файл .htpasswd для зберігання інформації про пароль і файл .htaccess для визначення правил доступу.

Наприклад, якщо ви використовуєте веб-сервер Apache, ви можете використовувати файл .htpasswd для зберігання імен користувачів та хешів їх паролів, а файл .htaccess для визначення правил доступу. Ось кроки:

1.  **Створення файлу .htpasswd:** Використовуйте утиліту htpasswd, яка постачається з сервером Apache. Відкрийте термінал та використайте наступну команду, щоб створити файл .htpasswd та додати користувача:

    ```bash
    htpasswd -c /шлях_до_сайту/.htpasswd ім'я_користувача
    ```

    Після виклику цієї команди вам буде запропоновано ввести пароль для нового користувача.
2.  **Налаштування .htaccess:** Створіть або відредагуйте файл .htaccess у кореневій директорії вашого сайту та додайте наступний код:

    ```apache
    <Files "пошлях_до_захищеної_директорії">
        AuthType Basic
        AuthName "Restricted Access"
        AuthUserFile /шлях_до_сайту/.htpasswd
        Require valid-user
    </Files>
    ```

    :question:\<Files ... > чи \<Directory ... >?\
    Замініть "пошлях\_до\_захищеної\_директорії" шляхом шляху до директорії, яку ви хочете захистити.
3. **Перезавантажте веб-сервер:** Після внесення змін у файли .htpasswd та .htaccess перезавантажте ваш веб-сервер, щоб зміни вступили в силу.

Тепер, коли ви намагаєтеся звернутися до захищеної директорії, вас буде запросено ввести ім'я користувача та пароль. Відповідні дані будуть перевірені за допомогою файлу .htpasswd, і доступ буде наданий тільки при правильних облікових даних.
