Newsgroup: it.comp.os.linux.software
Titolo: Per esperti di apache: eseguirlo come utente != root

Ho gia' postato su .iniziare ma forse e' meglio qui.
Ho la necessita' di avviare apache con un utente
diverso da root, ho dato permessi a profusione
e alla fine ho impostato il bit suid al file
/usr/sbin/httpd
Purtroppo ancora non va, mi da l'errore riportato sotto.
Non so cosa voglia dire, io l'opzione -e non
l'ho passata ma quello portrebbe essere solo un messaggio
informativo e magari l' errore e' solo
    perl_parse: Illegal seek
Ma cosa mi manca per fare andare apache lanciato da un
utente che non sia root?!?
Faccio presente che tutti i module di apache
sono eseguibili e leggibili da chiunque, scrivibili
solo da root e che nel file di configurazione ho messo
una porta molto alta cioe'
Listen <MIO_IP>:2960
[admin@mymachine modules]$ ls -la /usr/sbin/httpd
-rwsrwx---    1 root     admin   308884  7 apr  2003 /usr/sbin/httpd
[admin@mymachine modules]$ /usr/sbin/httpd -k start
No -e allowed in setuid scripts.
perl_parse: Illegal seek
Idee?


Perchè vuoi fare una cosa del genere? Se apache non è root non può aprire 
porte privilegiate (sotto la 1024) e quindi te ne fai poco; comunque il 
processo che gira come root forka un figlio con l'utente indicato 
nell'httpd.conf e quindi non problem.
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
	(Seen on TV!!!)
	"Risparmiamo 5 centesimi a transazione!"

 Idee?
Di per se, apache gira con i privilegi che specifichi nell'apposita
direttiva: User/Group in httpd.conf.
Il codice di apache fa di suo lo switch.
Detto questo, posso consigliarti di leggere questo interessante
tutorial?
http://www.linuxplanet.com/linuxplanet/tutorials/1527/1/
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Sheep are not a substitute for caffeine.

 indicato nell'httpd.conf e quindi non problem.
Perche' vorrei poterlo avviare e stoppare
(solo apache non altri servizi) con un certo utente pincopallino
e mi sta bene che ascolti su una porta > 1024 scelta da me.
Si puo' fare?

 indicato nell'httpd.conf e quindi non problem.
Perche' vorrei poterlo avviare e stoppare
(solo apache non altri servizi) con un certo utente pincopallino
e mi sta bene che ascolti su una porta > 1024 scelta da me.
Si puo' fare?
Ciao, fabio

 
(occhio che duplichi i messaggi)
Penso non ci sia problemi, basta che la porta sia settata >1024 e apache 
lanciato dall'utente pincopallo
Non ti do altre info perchè i miei apache sono tutti su porta 80


 > Di per se, apache gira con i privilegi che specifichi nell'apposita
 > direttiva: User/Group in httpd.conf.
 > Il codice di apache fa di suo lo switch.
Purtroppo a me interessa avviarlo con un certo utente
infatti nel mio primo post avevo specificato di aver gia'
messo un utente diverso nel file di
configurazione httpd.conf ma non basta....
 > Detto questo, posso consigliarti di leggere questo interessante
 > tutorial?
 > 
http://www.linuxplanet.com/linuxplanet/tutorials/1527/1/
Grazie domani gli do' un'occhiata e spero che ci sia
qualcosa a riguardo del mio problema.
Ora sono fuso infatti mi scuso per il doppio
post.
Ciao

 configurazione httpd.conf ma non basta....
Il problema è che le porte <1024 sono abilitate solo per servizi avviati
da root. Usualmente tutti i servizi che girano con permessi non
privilegiati vengono _comunque_ avviati da root, poi forkano su un
processo non privilegiato.
Vedi postfix, che ha il "master" avviato da root; vedi Apache, che vuole
essere lanciato coi privilegi di root; vedi tutti i vari servizi gestiti
da inetd, che va su coi servizi di root, etc.
Una soluzione potrebbe essere quella di avviare apache sulla porta 8080
e poi impostare un redirect con ipchains o iptables.
Alternativamente, avviarlo sulla 8080 (o simile) e poi indicare come
indirizzo: 
http://www.mioserver.it:8080/index.html
-- 
Massimo Bacilieri AKA Crononauta 
ICQ:4005815

 (solo apache non altri servizi) con un certo utente pincopallino
Scusa per questo non puoi usare sudo ?
ciao
-- 
Paolo Gherpelli
gherpelli at libero dot it
http://www.gherpelli.it
Powered by Debian 3.0 / Linux 2.4.18 on a P2-400

 > Una soluzione potrebbe essere quella di avviare apache sulla
 > porta 8080 e poi impostare un redirect con ipchains
 > o iptables.
 > Alternativamente, avviarlo sulla 8080 (o simile) e poi indicare
 > come indirizzo: 
http://www.mioserver.it:8080/index.html
A me sta benissimo la seconda ipotesi (anzi e' quello che voglio)
solo che non basta specificarlo nel file httpd.conf
(vedi il mio primo post) perche' anche specificando una porta > 1024
non va lo stesso.
Domani provero' con questa porta che mi indichi tu che e'
ancora piu' alta di quella che usavo.
Grazie

 >> Perche' vorrei poterlo avviare e stoppare
 >> (solo apache non altri servizi) con un certo utente pincopallino
 >> e mi sta bene che ascolti su una porta > 1024 scelta da me.
 >> Si puo' fare?
 >> Ciao, fabio
 >>
 > (occhio che duplichi i messaggi)
 >
 > Penso non ci sia problemi, basta che la porta sia settata >1024 e apache
 > lanciato dall'utente pincopallo
 > Non ti do altre info perchč i miei apache sono tutti su porta 80
Purtroppo ho gia' provato (vedi il mio primo post)
ma non si avvia lo stesso.
Grazie comunque.

 ciao
Con sudo non ho provato, avrei preferito riuscirci
senza usare altri programmi esterni ma solo
usando permessi e bit di suid cmq domani
mi guardo man sudo.
Grassie, ciao

Hai provato a impostare il suid ad apachectl anzichč ad httpd?
Ciao, Frank.


 Ciao, Frank.
Non credo sia una buona idea,
apachectl e' uno script, viene intepretato da /bin/sh che e' una shell
e per avere l'effetto del bit di suid dovresti suiddare quest'ultima
e credo che suiddare una shell sia un'azione decisamente malsana...

> Idee?
Alla fine ho usato sudo