instalar ejemplos comandos basicos php exec sudo

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