> For the complete documentation index, see [llms.txt](https://olexsyn.gitbook.io/enote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olexsyn.gitbook.io/enote/linux/commands/htpasswd.md).

# 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, і доступ буде наданий тільки при правильних облікових даних.
