php - ejemplos - lamp server ubuntu
La página web PHP no ejecuta el comando Unix incluso después de sudoers actualizados (4)
El error que está obteniendo parece estar relacionado con su configuración de SELinux. Puede intentar deshabilitarlo temporalmente.
Por otro lado, le sugiero encarecidamente que ajuste su configuración de sudo para que sea más restrictiva.
User_Alias WWW=apache
Cmnd_Alias WEBCMDS=/etc/init.d/portmap
WWW ALL=NOPASSWD: WEBCMDS
Básicamente, estoy tratando de reiniciar un servicio desde una página web de php.
Aquí está el código:
<?php
exec (''/usr/bin/sudo /etc/init.d/portmap restart'');
?>
Pero, en /var/log/httpd/error_log
, obtengo
incapaz de cambiar a sudoers gid: Operación no permitida
y en / var / log / messages, obtengo
22 de septiembre 15:01:56 ri kernel: audit (1222063316.536: 777): avc: denied {getattr} para pid = 4851 comm = "sh" name = "var" dev = dm-0 ino = 114241 scontext = root: system_r : httpd_sys_script_t tcontext = system_u: object_r: var_t tclass = dir
22 de septiembre 15:01:56 ri kernel: audit (1222063316.549: 778): avc: denied {setrlimit} para pid = 4851 comm = "sudo" scontext = root: system_r: httpd_sys_script_t tcontext = root: system_r: httpd_sys_script_t tclass = proceso
22 de septiembre 15:01:56 ri kernel: audit (1222063316.565: 779): avc: denied {read} para pid = 4851 comm = "sudo" name = "sombra" dev = dm-0 ino = 379669 scontext = root: system_r : httpd_sys_script_t tcontext = system_u: object_r: shadow_t tclass = file
22 de septiembre 15:01:56 ri kernel: audit (1222063316.568: 780): avc: denied {read} para pid = 4851 comm = "sudo" name = "sombra" dev = dm-0 ino = 379669 scontext = root: system_r : httpd_sys_script_t tcontext = system_u: object_r: shadow_t tclass = file
22 de septiembre 15:01:56 ri kernel: audit (1222063316.571: 781): avc: denied {setgid} para pid = 4851 comm = "sudo" capacidad = 6 scontext = root: system_r: httpd_sys_script_t tcontext = root: system_r: httpd_sys_script_t tclass = capacidad
22 de septiembre 15:01:56 ri kernel: audit (1222063316.574: 782): avc: denied {setuid} para pid = 4851 comm = "sudo" capacidad = 7 scontext = root: system_r: httpd_sys_script_t tcontext = root: system_r: httpd_sys_script_t tclass = capacidad
22 de septiembre 15:01:56 ri kernel: audit (1222063316.577: 783): avc: denied {setgid} para pid = 4851 comm = "sudo" capacidad = 6 scontext = root: system_r: httpd_sys_script_t tcontext = root: system_r: httpd_sys_script_t tclass = capacidad
En mi visudo, agregué esas líneas
User_Alias WWW = apache
WWW ALL = (ALL) NOPASSWD: TODOS
Podrías ayudarme ? Estoy haciendo algo mal ?
Gracias por tu ayuda,
tiBoun
El problema no está en sudo en este momento, sino con SELinux , que está (razonablemente) configurado para impedir que HTTPD obtenga privilegios de administrador.
Tendrá que permitir esto explícitamente (puede usar audit2allow para esto), o configurar SELinux para que sea permisivo. Sugeriría el primero.
Esto probablemente se deba a algo así como intentar ejecutar sudo en un shell no interactivo.
Si hace un grep para ''sudo'' en el registro de correo de los usuarios de apache, puede encontrar cosas como esta
sudo: lo siento, debes tener un tty para ejecutar sudo
Me encontré con el problema recientemente y la respuesta aceptada anteriormente me ayudó. Sin embargo, me gustaría publicar esta respuesta para elaborar la misma, para que la próxima persona no necesite pasar mucho tiempo, ¡como yo!
Siga la sección 7 del siguiente enlace: https://wiki.centos.org/HowTos/SELinux .
Haz grep con httpd_sys_script_t
.
Básicamente los pasos son:
# grep httpd_sys_script_t /var/log/audit/audit.log | audit2allow -M httpdallowsudo
# semodule -i httpdallowsudo.pp