Dnes se budeme věnovat souboru access.conf a omezování uživatelů, počítačů a přístupů do adresářů.
V souboru
C:\Program Files\Apache Group\Apache\conf\access.conf (
$HOME/apache/etc/access.conf pro platformu Linux/Unix) lze provést omezení uživatelů, počítačů a přístupů do adresáře serveru.
Omezení činnosti v jednotlivých adresářích.
Jedním z nejdůležitějších parametrů je parametr
Options pomocí kterého můžeme řídit akce, které se smějí či nesmějí provádět v jednotlivých adresářích. (tabulka 1)
Proměnná | Popis |
None | není nic povoleno, vše je zakázáno |
All | je povoleno vše, mimo MultiViews |
Indexes | pokud není v adresáři soubor DirectoryIndex*, pak se vytvoří seznam souboru, které jsou v daném adresáři |
Includes | jsou povoleny všechny vsuvky, tj. textové i CGI skripty. |
IncludesNOEXEC | jsou povoleny vsuvky, ale jsou zakázány příkazy #include a #exec |
FollowSymLinks | jsou povoleny symbolické odkazy |
ExecCGI | jsou povoleny spouštět CGI skripty |
MultiViews | je povolena domluva s klientem |
*
DirectoryIndex je parametr konfiguračního
souboru C:\Program Files\Apache Group\Apache\conf\srm.conf (
$HOME/apache/etc/srm.conf). Pokud URL odkaz směřuje pouze na adresář a není uveden soubor, pak server vybere soubor, který je definován jako DirectoryIndex (například index.html). Podrobnější popis najdete hned v příštím pokračování.
Dalším velmi důležitým příkazem je AllowOverride ,který může mít tyto proměnné: (tabulka 2)
Proměnná | Popis |
None | jsou zakázány (ignorovány) soubory typy AccessFileName** |
All | je povoleno měnit úplně všechno |
Indexes | může se upravovat automatické vytváření obsahu souboru v aktuálním adresáři, pokud tam není soubor typu DirectoryIndex |
Options | je povolen příkaz Options (viz. Tabulka 1) |
Limit | Lze omezovat přístup do jednotlivých adresářů pomocí příkazů allow,order, a deny |
FileInfo | Lze upravovat popisy u souborů (příkazy AddEncoding, AddLanguage, Languagepriority, ...***) |
AutoConfig | |
**
AccessFileName je parametr konfiguračního souboru
C:\Program Files\Apache Group\Apache\conf\srm.conf (
$HOME/apache/etc/srm.conf). Soubor se standardně jmenuje .htaccess a pomocí tohoto souboru, lze měnit přístupová práva v aktuálním adresáři.
***Příkazy AddEncoding, AddLanguage, Languagepriority, ... jsou parametry konfiguračního souboru C:\Program Files\Apache Group\Apache\conf\srm.conf ($HOME/apache/etc/srm.conf). Tyto parametry, říkají jak se mají soubor chovat a zobrazovat.
Příklad
Řekněme, že chcete v celém adresářovém prostoru www serveru povolit serverem vkládané vsuvky (
Includes), symbolické odkazy (
FollowSymLinks), a pokud nebude v aktuálním adresáři soubor
DirectoryIndex, pak vytvořit seznam souborů v aktuálním adresáři (
Indexes). Dále chceme, aby na server měl přístup každý uživatel bez omezení (
order,
allow)
(příklad 1)
<Directory "C:/Program Files/Apache Group/Apache/htdocs">
Options Indexes FollowSymLinks Includes
AllowOverride None
order allow,deny
allow from all
</Directory>
V případě Apache pro platformu Unix/Linux pouze změníme první řádek:
<Directory "$HOME/apache/share/htdocs">
Adresář C:\Program Files\Apache Group\Apache\htdocs ($HOME/apache/share/htdocs) je DocumentRoot****. Příklad ukazuje většinou standardní nastavení adresáře typu DocumentRoot. Není dobré mít povoleno spouštění CGI skriptů kdekoliv na serveru. CGI skripty by se měly z hlediska bezpečnosti povolit pouze v jedno adresáři a tím je většinou adresář typu ScriptAlias*****. Zároveň však musí být povoleno spouštění CGI skriptů v konfiguračním souboru C:\Program Files\Apache Group\Apache\conf\access.conf ($HOME/apache/share/access.conf). Povolení spouštět v adresáři typu ScriptAlias CGI skripty ukazuje tento příklad:
(příklad 2)
<Directory "C:/Program Files/Apache Group/Apache/cgi-bin">
AllowOverride None
Options FollowSymLinks ExecCGI
</Directory>
V případě Apache pro platformu Unix/Linux pouze změníme první řádek:
<Directory "$HOME/apache/share/cgi-bin">
****DocumentRoot je parametr konfiguračního souboru C:\Program Files\Apache Group\Apache\conf\srm.conf ($HOME/apache/etc/srm.conf). V tomto adresáři jsou uloženy HTML soubory, které chceme umístit na www server.
*****ScriptAlias říká, že pokud se odkážete do adresáře /cgi-bin/, pak se tento odkaz přesměruje do
adresáře C:\Program Files\Apache Group\Apache\cgi-bin ($HOME/apache/share/cgi-bin)
Pochopitelně, že příkaz Directory (viz příklad 1 a 2) můžeme použít na jakýkoliv adresář. Všimněme si, že v příkladu 2 je povoleno pomocí parametru ExeCGI (viz. tabulka 1) povoleno spouštět CGI skripty.