Ejecutar comandos linux
Hola, me gustaria saber la forma de hacer llamadas a órdenes del sistema desde un archivo .modules
Por ejemplo si quiero crear un directorio en un momento dado,¿como sería este código dentro del archivo?
En C sería system(mkdir /carpeta_nueva); ¿¿y en drupal?? El S.O. en mi caso es Linux
Gracias
- Inicie sesión o regístrese para enviar comentarios







Prueba con exec
Si no me equivoco la función exec te permite hacerlo en PHP.
¡Saludos!
Alexis Bellido
Aprende a usar Drupal en menos de 48 horas
falla adduser
Hola, en efecto exec es la orden para hacerlo,el problema es que si se quieren ejectuar órdenes que precisan de privilegios de administrador,parece que el servidor (Apache en mi caso) pasa de ellas,sin mostrar error ni nada.
¿Alguien sabe como hacerlo?
Gracias...
No es posible o recomendable hacerlo
Permitir que Apache ejecute comandos que solo un usuario root debería no es recomendable. ¿Qué es lo que quieres hacer en realidad? Talvez sea bueno investigar otras alternativas.
Saludos.
Alexis Bellido
Aprende a usar Drupal en menos de 48 horas
Me explico...
El propósito es instalar drupal en un servidor para una red cerrada, es decir, los usuarios solo podrán entrar en el sistema de drupal si intentan la conexión desde ciertas ip's pertenecientes a la red interna (aún tengo que averiguar como filtrar ip's).
Mi intención es que solamente el administrador pueda crear usuarios, y en el momento de crearlos, que se añada este usuario al sistema (en el servidor,creando /home/user,etc...). De aquí que quiera ejecutar la orden adduser.
No creo que sea peligroso que Apache ejecute órdenes en este caso, ya que las conexiones serán internas, y en mi red no deberían haber usuarios maliciosos :-)
¿Podrías decirme como permitir a Apache esto, o si conoces alguna alternativa mejor?
Gracias!!
Veo tres opciones
Imagino hay más formas de hacerlo. Nos comentas como funciona.
¡Saludos!
Alexis Bellido
Aprende a usar Drupal en menos de 48 horas
prueba
prueba (lo siento...)
...
Opcion 3: Apache2 no permite arrancar con la directiva User root (almenos en xampp).
Modifico httpd.conf para
Modifico httpd.conf para ejecutar con directivas User nobody, Group root
Opcion 1: Añadido el usuario 'nobody' al grupo 'root' sigue poder sin ejecutar adduser y useradd. Despues de hacer muuuuchas pruebas, desde la misma consola, con un usuario del grupo root (habiendo cambiado el grupo de adduser y useradd a root,y añadiendo permisos de ejecucion para el grupo) me doy cuenta que tampoco se puede. Unica y exclusivamente puede el usario root,o en su defecto,con sudo si que se puede,pero Apache pasa olimpicamente de sudo (habiendo añadido al usuario nobody con privilegios ALL),asi q estamos en las mismas.
sigue...
Opcion 2: Probada dentro de la Opcion 1 y nada.
Llevo muchos dias leyendo por foros e info oficial y las opciones que comenta alexis son las unicas soluciones que he encontrado.
Seguire buscando solucion, ya por orgullo. Creo que la clave esta en que Apache sea capaz de ejecutar desde sudo, pero no encuentro nada de info al respecto.
Mi otra duda es si instalando por paquetes Apache2,mysql,phpmyadmin,etc.... me permitiria ejecutar Apache como root.Yo lo tengo instalado todo con xampp, que no permite esta opcion.
De todas formas, muchas gracias, Alexis