sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #44587
Re: Start af apache med bruger som ikke er root
On Mon, 19 Nov 2001 10:34:52 +0100, "Jacob Vennervald Madsen"
<jvm@xxxxxxxxxxxxxxx> wrote:
> Jeg bruger Apache webserver og vil gerne kunne starte og stoppe Apachpe
> som en anden bruger end root.
I unix er det således, at kun root kan køre programmer, som binder sig
til porte under port 1024. (Fornufte programmer såsom Apache omdanner sig
til en upriviligeret bruger efter at bindingen til porten er på plads.)
Dette kan omgås via to principper:
1. Enten - som Carsten skriver - ved at benytte en wrapper
såsom sudo, som tillader alm. brugere at afvikle visse veldefinerede
programmer/scripts med root-rettigheder.
2. Ved et halvgrimt hack, hvor programmet bedes om at
binde sig til fx. port 1900. Forinden har man så via ipchains eller
iptables opsat en port omdirigering, således at alle indgående
forbindelser til port 80 sendes videre til port 1900.
Ad 1:
-----
Prøv at oprette følgende en fil kaldet /etc/sudoers, med følgende linje
(husk afsluttende linjeskift):
%wheel ALL=(root) NOPASSWD:/etc/rc.d/init.d/httpd
Nu kan du - hvis du er medlem af "wheel" gruppen fx. køre følgende: sudo
/etc/rc.d/init.d/httpd restart
Ad 2:
-----
iptables \
-t nat \
-A PREROUTING \
-p tcp \
--dport 80 \
-j REDIRECT \
--to-port 1900
# For at også locale requests såsom
# lynx http://localhost/ vil virke.
iptables \
-t nat \
-A OUTPUT \
-p tcp \
--dport 80 \
-j REDIRECT \
--to-port 1900
(Det samme er lidt lettere med den gamle ipchains.)
Bemærk dog, at denne løsning kan indebære, at der skal rodes med
rettigheder i kataloger (og evt. disses filer) såsom /var/log/httpd og
/var/run; ellers kan det være, at den upriviligerede bruger, som Apache
startes med, ikke kan skrive log-filer og/eller semaforer.
--
Greetings from Troels Arvin, Copenhagen, Denmark
Follow ups
References