Přináším pro vás krátký a zjednodušený návod na instalaci extenze mod_ruid2, který se stará o spouštění php skriptu v apachi pod UID skriptu. Díky tomuto rozšíření budou jednotlivý uživatelé od sebe odděleni, což je důležité z hlediska bezpečnosti. V normální konfiguraci jsou totiž vytvořené soubory ukládány pod UID apache, který má přístup i do dalších adresářů.
Teď k samotné instalaci. Nevymyslel jsem jí, pouze jí překládám a částečně zjednodušuji. Originál najdete na DirectAdminu.
1 – pokud již používáte mod_ruid, pak jej odinstalujte
2 – nainstalujte si libcap-devel
yum -y install libcap-devel
3 – dále si stáhněte a nainstalujte mod_ruid2
wget -O mod_ruid2-0.9.7.tar.bz2 „http://downloads.sourceforge.net/project/mod-ruid/mod_ruid2/mod_ruid2-0.9.7.tar.bz2?r=&ts=1335638772&use_mirror=kent“
tar xjf mod_ruid2-0.9.7.tar.bz2
cd mod_ruid2-0.9.7
apxs -a -i -l cap -c mod_ruid2.c
4 -ověřte správnost instalace
grep ‚mod_ruid2‘ /etc/httpd/conf/httpd.conf
mělo by se zobrazit LoadModule ruid2_module /usr/lib/apache/mod_ruid2.so
5 – v každém konfiguračním souboru virtuálu (virtual_host.conf):
## nahraďte řádku: SuexecUserGroup |USER| |GROUP|
## následovně: #SuexecUserGroup |USER| |GROUP|
## Dále pod tuto řádku dopište následující tři další řádky a soubor uložte.
RMode config
RUidGid |USER| |GROUP|
RGroups apache
6 – máme hotovo, ještě je potřeba restartovat apache
service httpd restart
7 – nyní by se vám již skripty měly spouštět pod UID skriptu. Já jsem si na to připravil krátký PHP skriptík, který vytvoří soubor a porovná jeho vlastníka s UID pod kterým byl spuštěn. Poté se vytvořený soubor ihned smaže.
1 2 3 4 5 6 7 8 9 | <?php $temp_handle = @ fopen ( "__tempme.txt" , 'w' ); if ( $temp_handle ) { echo "myuid: " . getmyuid (); echo "<br>fileowner: " .@ fileowner ( "__tempme.txt" ); } else echo "Chyba zapisu" ; unlink( "__tempme.txt" ); ?> |
Toť vše, alespoň u mě to stačilo (VPS u Wedosu). Nyní otestujete veškeré vaše aplikace jestli fungují. Pokud máte problémy, nebo otázky mrkněte do DirectAdminu, kde je o celé instalaci poměrně bohatá diskuze.