Adjunto | Tamaño |
---|---|
sudoers.txt | 684 bytes |
php_ini.txt | 45.27 KB |
httpd.conf_.txt | 34.07 KB |
Forums:
SALUDOS cORDIALES A TODOS
Estoy tratando y trando y no puedo ejecutar un comando linux desde php para lo cual he modificado el archivo /etc/sudoers para darle permisos al apache.
Adjunto acontinuación mis archivos
/etc/sudoers
php.ini
httpd.conf
LA FUNCION PHP DESDE AL QUE QUIERO EJECUTAR EL COMANDO du es el siguiente:
function Get_Tamanio_Path($path_carpeta)
{
//echo $path_carpeta ---->aqui imprimo haber que me llega y me llega /etc/gonzalo (sin espacios al principio ni al final)
$com = "du -sh $path_carpeta";
$pasa= exec("$com"); // aqui ya probe tambien $pasa= exec($com); sin comillas
$cant=strlen($pasa);
// echo $cant-----//aqui el valor que imprime tambien es cero a pesar que ejecutando du -sh /etc/gonzalo desde la consola de linux me devuelve un valor mayor que cero
return $cant;
}// fin Get_Tamanio_Path($username)
$tam=Get_Tamanio_Path("/etc/gonzalo");
echo "El tamaño de la carpeta es:",$tam;/// el valor que me devuelve es 0;
//EL SOFTWARE QUE UTLIZO Y LAS VERSIONES SON ALS SIGUIENTES:
Linux Centos 4.4
Php 5.1.6
Mysql 5.0.27
Apache 2.0.52
POR FAVOR ESPERO PUEDAN AYUDARME PRONTO,AGRADECERE LOS APORTES DE TODOS , PERO ESPECIALMENTE DE LOS QUE ANTERIORMENTE HAYAN REALIZADO ESTA TAREA , MUCHAS GRACIAS.
Att.
BuscaSolus
ejecutar comandos asterisk desde la Web
omegajack, gracias por informar el procedimiento para ejecutar comandos asterisk desde la web. acabo de hacer todo lo que comentas, peron no me quiere funcionar. ejecuta todo perfecto, en el log del php no sale nada, pero en la pagina web no me muestras los peers.
gracias
A ve no se si me equivoque,
A ve no se si me equivoque, pero pienso que esta definiendo mal el visudo, ahora hay Ale25 te puso un ejemplo del visudo, mi pregunta va con esto "User_Alias usuario = daemon" , esta utilizando el mismo usuario.?? ya que en esa linea se define lo usuario en la cual quiere que ejecute algun comando como root.
Saludos
Es un error de permisos.....
Saludos a todos
No sabia como monitorear el funcionamiento del apache, y luego de la pregunta de Qu'e dicen los logs?, ejecute el comando:
# tail -f /etc/httpd/logs/error_log
Y OBTUVE LO SIGUIENTE:
du: no se puede acceder a /home/vmail/dominio/jperez/: Permiso denegado
Los permisos de las carpetas son los siguientes:
CARPETA : home
Propietario:root
Grupo: root
Vista # : 755
CARPETA : vmail
Propietario:vmail
Grupo: vmail
Vista # : 705
CARPETA : dominio
Propietario:vmail
Grupo: vmail
Vista # : 705
CARPETA : jperez (y todas las carpetas y archivos dentro de esta)
Propietario:vmail
Grupo: vmail
Vista # : 705
QUE MAS TENGO QUE REVISAR GRACIAS DE ANTEMANO .....
como usar sudo
Es que no estas convirtiendote en root exitosamente, la falla esta en el uso de sudo en el script.
Fijate en el ultimo mensaje de antares, cuando usas sudo, y defines el comando a ejecutar en sudoers, lo haces con la ruta completa al ejecutable. Cuando corres sudo, tienes que hacer lo mismo, en tu caso falta la ruta completa al ejecutable du.
cambie la liena de sudo y aparecio otro error
ejecute desde php
sudo /usr/sbin/du -sh /home/vmail/dominio/jperez como me recomineda antares en su ultimo mensaje, pero revisando los logs me salio lo siguiente:
unable to change to sudoers gid: Operation not permitted
SI EJECUTO SOLO du -sh /home/vmail/dominio/jperez ME SALE OTRA VEZ EN LOS LOGS DE APACHE:
du: no se puede acceder a «/home/vmail/dominio/jperez/»: Permiso denegado
sudo y php
Y por si acaso no te sale en /var/log/messages algo como
kernel: audit(1136475268.917:338): avc: denied {
setrlimit } for pid=8709 comm="sudo"
?
Si es asi, tienes que desactivar selinux o modificar la politica para que sudo pueda trabajar. Esto lo vi buscando tu mensaje de error en google. Me tomo 3 minutos, tu tambien hubieras podido hacerlo.
gracias ya lo desactive anteriormente....
Gracias por la sugerencia perdon otra vez por no detallar lo que voy filtrando para allar la solucion
Ya desactive selinux para que sudo pueda trabajar.
De hecho antes de desactivar el selinux me salia algo como lo siguiente:
audit(1183578918.903:593): avc: denied { getattr } for pid=16864 comm="du"
MI ARCHIVO /etc/grub.conf con la modificacion tiene el siguiente contenido:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.9-55.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-55.EL ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-55.EL.img
title CentOS (2.6.9-55.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-55.ELsmp ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-55.ELsmp.img
title CentOS (2.6.9-42.0.10.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.10.ELsmp ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-42.0.10.ELsmp.img
title CentOS (2.6.9-42.0.10.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.10.EL ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-42.0.10.EL.img
title CentOS (2.6.9-42.0.8.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.8.EL ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-42.0.8.EL.img
title CentOS (2.6.9-42.0.8.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.8.ELsmp ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-42.0.8.ELsmp.img
title CentOS (2.6.9-42.0.3.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.3.EL ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-42.0.3.EL.img
title CentOS (2.6.9-42.0.3.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.3.ELsmp ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-42.0.3.ELsmp.img
title CentOS-4 i386 (2.6.9-34.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-34.ELsmp ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-34.ELsmp.img
title CentOS-4 i386-up (2.6.9-34.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-34.EL ro root=LABEL=/ selinux=0 rhgb quiet
initrd /initrd-2.6.9-34.EL.img
Pero igual me sigue saliendo en /var/log/message:
audit(1183581638.989:707): avc: denied { getattr } for pid=18818 comm="du" name="jperez" dev=sda3 ino=1951430 scontext=user_u:system_r:httpd_sys_script_t tcontext=root:object_r:user_home_t tclass=dir
GRACIAS DE TODAS FORMAS VOY A SEGUIR INTENTANDO MODIFICAR LAS POLITICAS QUE SUGIERAS O ALGO MAS SI LO SOLUCIONO LO COMENTO....
Edita el
Edita el archivo:
/etc/selinux/config
Y déjalo como:
SELINUX=disabled
Reinicia y prueba nuevamente ...
Suerte
bye
:)
MUCHAS GRACIAS A TODOS ....YA FUNCIONO
EN EL ARCHIVO : /etc/selinux/config
SELINUX=disabled
Y LUEGO REINICIE EL SERVER Y BUALAAAAA......
Páginas