sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #84946
Løsning på problemet med at anvende suexec og virtualhosts
Jeg tænkte at der måske var andre som kunne have glæde af det.
Jeg ville også gerne høre om der skule være nogen sikkerhedsmæssige
problemer vedr. løsningen.
Vores originale problem er altså at vi har en virtuelhost www.foo.dk som
er konfigureret til at hente sine filer i /home/bar/public_html, foo.dk
ønsker så at kunne udføre cgi scripts, men vi ønsker ikke at disse skal
udføres som den bruger webserveren kører under.
Eneste umidelbare løsning er at anvende 'suexec', men så skulle
documentroot for foo.dk ligge under den indkompilerede DOC_ROOT i suexec,
hvilket man ikke ønsker, da der er flere fordele ved ikke at have det.
Eneste udvej er så at anvende UserDir (hvilket er den anden mulighed ved
suexec) og så blive lidt kreative.
Løsningen er baseret på http://defindit.com/readme_files/httpd_suexec.html
Her er mere eller mindre den skifte jeg har anvendt, det ser ud til at
virke fint nok.
<VirtualHost XXXXXXX:80>
ServerAdmin xxx@xxxxxx
DocumentRoot /home/bar/public_html
ServerName www.foo.dk
ErrorLog /var/log/httpd/error_log_foo
CustomLog /var/log/httpd/access_log_foo common
# aktiver mod_userdir, men kun for brugeren 'bar'
UserDir disabled
UserDir enabled bar
<Directory "/home/bar/public_html">
AllowOverride All
Options +IncludesNOEXEC +FollowSymLinks +Indexes +MultiViews
Order allow,deny
Allow from all
XBitHack Full
</Directory>
# er ikke helt sikker på om denne er nødvendig
SuexecUserGroup bar bar
# her er så det sjove, UserDir gør at man kan komme i kontakt med cgi
# via ~user/cgi-bin (hvor den så fanger
# /home/user/public_html/cgi-bin),
# dvs. vi skal bare rewrite alle requests til
# /cgi-bin over til /~bar/cgi-bin
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/~bar.*$
RewriteRule ^/cgi-bin/(.*)$ /~bar/cgi-bin/$1 [PT]
<Directory "/home/bar/public_html/cgi-bin">
AllowOverride None
# da vi ikke kører under ScriptAlias skal vi selv
# tilføje ExecCGI
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
# og vi skal selv specificerer hvilke filtyper som skal fortolkes som
# cgi
AddHandler cgi-script .cgi .pl
</Directory>
</VirtualHost>
Så er man i det mindste fri for at skulle omkompilere suexec.
Det ser i hvert fald ud til at virke fint for mig. Eneste ændring i
forhold til ScriptAlias er at man nu kun at få udført cgi'er med .cgi
eller .pl endelser i modsætning til ved ScriptAlias hvor alt fortolkes som
cgi. Men det er der sikkert en måde at komme uden om.
Kommentarer er velkomne.
BTW: er der et mere specifikt dansk forum for denne slags problemer?
/daleif
``You cannot help men permanently by doing for them
what they could and should do for themselves. ''
-- Abraham Lincoln
Follow ups