Una delle cose più fastidiose di apache è che, se compilato senza attenzione, si porta dietro una serie di configurazioni non modificabili tramite semplici file di configurazione.
Alcune di queste sono sicuramente i parametri di suexec.
Suexec è una funzionalità presente in apache 1.2 che permette di eseguire CGI e applicazioni SSI con i privilegi diversi da quelli dell’utente apache di sistema. In questo modo ogni utente può eseguire scripts complessi senza poter uscire dal proprio spazio web.
Purtoppo a volte è necessario modificare i path di default.
Vediamo come
Innanzitutto loggatevi sulla vostra macchina con privilegi di root
1 | # su - |
controlliamo i parametri del nostro suexec:
1 2 3 4 5 6 7 8 | # /usr/lib/apache2/suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="www-data" -D AP_LOG_EXEC="/var/log/apache2/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" |
come potete vedere dal risultato, i parametri cablati al momento della compilazione sono molti.
spostiamoci in /usr/src e scarichiamo i sorgenti necessari al nostro scopo
1 2 3 4 | # cd /usr/src # apt-get update # apt-get build-dep apache2 # apt-get source apache2 |
ok, adesso spostiamoci nella directory con i sorgenti e configuriamo apache con i parametri che ci interessano:
1 2 | # cd apache2-2.2.3 # nano debian/rules |
all’interno del file rules troverete un sacco di parametri. quelli ci interessano in questo momento sono quelli sotto la voce AP2_COMMON_CONFARGS.
quindi modifichiamo quanto ci serve andando a cambiare quanto presente alla riga
1 | --with-suexec-docroot=/home/hosting \ |
e salviamo.
ora, semplicemente, dovremmo ricompilare il file. prima di farlo però, è necessario modificare la versione di apache in modo tale che il nostro cambiamento non venga sovrascritto ad ogni upgrade.
quindi
1 | # dch -i |
e ci troviamo all’interno del changelog di apache.
UN CONSIGLIO: se non volete dover reinstallare tutti i pacchetti di apache, eliminate la versione che dch vi aggiunge in automatico e andate a lavorare sull’ultima. aggiungete un bel * e inserite il vostro commento, tipo: “fixed suexec docroot to: /home” e salvate.
in questo modo la versione rimarrà inalterata e apache installerà solo la “patch” da voi applicata
a questo punto dobbiamo solo compilare e pacchettizzare
1 | # dpkg-buildpackage |
aspettate la fine delle operazioni di compilazione, tornate in /usr/src e installate i pacchetti modificati (nel nostro caso apache2.2-common e apache2.2-utils)
1 2 3 | # cd /usr/src //o se volete cd ../ # dpkg -i apache2.2-common_2.2.3-4+etch6_amd64.deb # dpkg -i apache2-utils_2.2.3-4+etch6_amd64.deb |
fatto questo restartate apache, verificate che tutto sia andato a posto ed eventualmente controllate i conflitti con apt
1 2 3 4 5 6 7 8 9 10 | # /etc/init.d/apache2 restart # /usr/lib/apache2/suexec -V -D AP_DOC_ROOT="/home" -D AP_GID_MIN=100 -D AP_HTTPD_USER="www-data" -D AP_LOG_EXEC="/var/log/apache2/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" # apt-get install -f |
alla prossima!


















0 Comments
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment