Article View: es.comp.os.linux.programacion
Article #5972Re: PHP APACHE y nobody
From: Jesús M. NAVARRO
Date: Wed, 20 Aug 2003 12:25
Date: Wed, 20 Aug 2003 12:25
79 lines
4716 bytes
4716 bytes
Hola, Alex: Alex Estevez escribi� en es.comp.os.linux.programacion: > > En todo caso, tengo hecho un script sh que se encargara de realizar la > tarea de dar el alta y este script sera llamado por el php. > > ahora bien, este script necesitara permisos de root. mi idea, es que el > script se ejecute con permisos de root, y lo que haga es lo siguiente. > Compruebe que el user que se quiere crear, existe dentro de una BBDD > mysql y si es asi, haga el adduser pertinente. > > El unico problema es ejecutarlo en modo root. En teoria si yo hago un > > #chmod 6755 myscript.sh > > deberia ejecutarse como root si este myscript.sh es tiene por > propietario a root no? lo tengo con propietario root y grupo root y no > se ejecuta como root. > Como sabes, ning�n script ni programa se ejecuta como el usuario al que *pertenece*, sino como el usuario *que lo invoca*. Esto es bastante sensato �no te parece? > dentro del script puse el comando 'id' a ver ... y no se ejecuta como > root sino como yo cuando lo hago desde consola, o nobody desde php. > En efecto. > o yo no he entenido bien eso del suid y el sgid, o alguna cosa no hago > bien. > Creo que lo has entendido bien, pero no has tenido en cuenta todos los detalles (ya sabes; el diablo est� en los detalles): En teor�a, al hacer un ejecutable suid a un usuario, el programa se ejecutar� con el usuario efectivo que es propietario del fichero. *PERO*, hacer un programa suid, sobre todo si es a root, es tan peligroso y es tan dif�cil hacer que un script sea m�nimamente seguro que Linux "no hace honor" al bit SUID en los scripts. En definitiva, contra lo que pone el libro, un script no se ejecuta en modo SUID. Alternativas: * Hacer que el script no sea tal, sino un ejecutable compilado; en este caso el sistema s� "har� honor" al bit SUID y podr�s ejecutarlo como root. El problema es similar al del script: a menos que seas bastante experto en programaci�n de sistemas, corres un grave riesgo de dejar en el sistema un agujero del tama�o de una boca de metro. * Ejecutar Apache con el suwrapper, que permite que ciertas partes de la web se ejecuten con un "usuario cambiado" (viene a ser equivalente a tener una parte de la web permanentemente en suid). Est�s en lo mismo: cualquier errorcillo y se podr� obtener una "shell escapada" y, por tanto, acceso a root desde donde se pueda alcanzar a esa web. * El m�todo desacoplado: hacer lo que te dije en mi primer mensaje. Puede que lo veas enrevesado pero, como te dije, se trata de la opci�n m�s natural puesto que remeda lo que har�a un "usuario real" de encontrarse en la misma circunstancia: explicarle el problema a un administrador y dejar que �l haga el trabajo. El desacople te permite tener dos puntos de control de la informaci�n y minimizar el paso de par�metros a la parte que se ejecuta con altos privilegios (idealmente, no se deber�a pasar ning�n par�metro pero esto, en este caso, es imposible pero, al poder utilizar un fichero de intercambio cuyo formato de datos deber�a ser muy sencillo -por ejemplo, una l�nea para cada par�metro, login/password, etc.- es m�s sencillo de controlar mediante expresiones regulares: basta recordar que no se trata de validar todo lo que pueda aparecer en el fichero, sino de buscar expl�citamente cosas con el formato m�nimo preestablecido; todo lo dem�s ni si quiera se revisa). Si se trata �nicamente de esta cosa puntual mi consejo es que lo m�s seguro es seguir la tercera opci�n. -- SALUD, Jes�s *** jesus_navarro@undominio.net ***
Technical Details
Message-ID:
<ju5c11-6dr.ln1@mithrandir.intranet>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.freenet.de!fu-berlin.de!uni-berlin.de!212.97.189.72!not-for-mailReferences:
<3F2F9BCD.8050601@SPAMpuertatel.com> <ltt401-3kc.ln1@mithrandir.intranet> <3F434C4E.1070705@SPAMpuertatel.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,9afc73b3e3571e08 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-08-20 06:12:35 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.freenet.de!fu-berlin.de!uni-berlin.de!212.97.189.72!not-for-mail From: Jesús M. NAVARRO <jesus_navarro@undominio.net> Newsgroups: es.comp.os.linux.programacion Subject: Re: PHP APACHE y nobody Date: Wed, 20 Aug 2003 14:25:21 +0200 Lines: 79 Message-ID: <ju5c11-6dr.ln1@mithrandir.intranet> References: <3F2F9BCD.8050601@SPAMpuertatel.com> <ltt401-3kc.ln1@mithrandir.intranet> <3F434C4E.1070705@SPAMpuertatel.com> NNTP-Posting-Host: 212.97.189.72 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8Bit X-Trace: news.uni-berlin.de 1061385154 3902346 212.97.189.72 (16 [173178]) X-Orig-Path: mithrandir.intranet!news User-Agent: KNode/0.7.2