Как да направим защитена с парола директория на Apache

За да може да приложите нещата, описани по-долу, вашият Apache уеб сървър трябва да бъде с активирани модули mod_auth и mod_access.

Началото

Да предположим, че имате директория на сайта си с информация, която не всеки трябва да вижда - например снимките от онзи рожден ден, на който всички се излагаха, ама много ;). Най-лесния, бърз и сигурен начин е да се използва системата за автентикация на Apache.

Първа стъпка - да направим файла с паролите.

Изисква се да се направи един файл със всички потребители и техните пароли (криптирани), които имат право на достъп до директорията. Този файл изглежда горе-долу така:

user1:7yefORPzkOGtw
user2:Zwes8W.81oqJ2


Имената на потребителите са до 255 символа и не трябва да съдържат :.

Файлът може да се генерира ръчно, като за паролата се ползва някой готов инструмент (ето един - http://www.flash.net/cgi-bin/pw.pl). След това се качва на сървъра с ftp.

Друг начин е като се използва инструмента htpasswd, който върви към Apache дистрибуцията. Когато се създава файлът за първи път се използва следния код:

htpasswd -c /home/vank0/.htpasswd -c vank0

След два пъти въвеждане на паролата файлът е създаден и потребителя vank0 е добавен. Оттук нататък само се добавят:

htpasswd -c /home/vank0/.htpasswd pesho
htpasswd -c /home/vank0/.htpasswd misho
htpasswd -c /home/vank0/.htpasswd diana
htpasswd -c /home/vank0/.htpasswd petq

Втора стъпка - задаване на .htaccess файла

В директорията, която искаме да ограничим, създаваме .htaccess файл. Да предположим, че document root е /home/vank0/www/, а директорията е /home/vank0/www/taino/ и сайтът е vank0.example.com. Ето съдържанието на /home/vank0/www/taino/.htaccess

AuthType Basic
AuthName "Taina direktoriq"
AuthUserFile /home/vank0/.htpasswd
Require valid-user

По този начин директорията http://vank0.example.com/taino/ е достъпна за всеки от потребителите в /home/vank0/.htpasswd

Само един потребител

Ако имаме директория, която трябва да е достъпна само за един потребител например /home/vank0/www/po-taino/ да е достъпна само за vank0, създаваме /home/vank0/www/po-taino/.htaccess със следното съдържание:

AuthType Basic
AuthName "Taina direktoriq na vank0"
AuthUserFile /home/vank0/.htpasswd
Require user vank0

Така само vank0 има достъп до http://vank0.example.com/po-taino/.

Няколко потребителя

Може да се наложи само няколко потребителя да имат достъп до определен ресурс. Например само pesho и misho до /home/vank0/www/pesho-misho/. Ще е необходим още един файл - с потребителски групи, в който ще опишем една група. Нека файла с групите е /home/vank0/.htgroups, със единствен ред:

grupata: misho pesho

Тогава във файла /home/vank0/www/pesho-misho/.htaccess трябва да се въведе:

AuthType Basic
AuthName "Taina direktoriq na grupata"
AuthUserFile /home/vank0/.htpasswd
AuthGroupFile /home/vank0/.htgroups
Require group grupata




Няма коментари

Обратно към списъка със статиите

Тази страница последно е променяна на 2024-04-29 02:47:40