Bienvenido(a) a Alcance Libre 07/09/2025, 15:32
|
![]() |
Índice del foro > Todo acerca de Linux > Redes y Servidores |
![]() ![]() |
![]() |
Carlos David Yoong Loor |
|
|||||||
![]() ![]() ![]() ![]() ![]() Nuevo ![]() ![]() Estado: desconectado ![]() Identificado: 02/07/09 Mensajes: 8 Localización:Ecuador |
Hola.!
Necesito poder reiniciar un host desde una página en php, sin tener que deshabilitar el SeLinux. Hasta ahora tengo la entrada en el archivo sudoers: PHP Formatted Code apache ALL=(ALL) NOPASSWD: /sbin/rebootEn php ejecuto Pero en audit.log recibo el siguiente registro: PHP Formatted Code type=AVC msg=audit(1423338346.349:18483): avc: denied { getattr } for pid=28148 comm="sudo" path="/usr/bin/systemctl" dev="dm-1" ino=33597973 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:systemd_systemctl_exec_t:s0 tclass=fileMe podrían ayudar a solucionar el problema sin tener que deshabilitar el SeLinux? Saludos cordiales.! Cogito Ergo Sum |
|||||||
|
||||||||
Joel Barrios Dueñas |
|
|||||||
![]() ![]() ![]() ![]() ![]() Admin ![]() Estado: desconectado ![]() Identificado: 17/02/07 Mensajes: 1761 Localización:Mexico |
Asumo que configuraste sudo para permitir utilizarlo sin un TTY (deshabilita Defaults requiretty con visudo).
Paso 0: echo > /var/log/audit/audit.log Paso 1: setenforce 0 Paso 2: Realiza la operación que necesitas habilitar en SELinux. Es decir, reinicia tu sistema con tu programa en PHP. Tras reiniciar... Paso 3: cat /var/log/audit/audit.log |audit2allow -M apachetty Paso 4: semodule -i apachetty.pp Recomiendo revisar apachetty.te (se genera con el paso 3) antes de ejecutar el paso 4. |
|||||||
|
||||||||
Carlos David Yoong Loor |
|
|||||||
![]() ![]() ![]() ![]() ![]() Nuevo ![]() Estado: desconectado ![]() Identificado: 02/07/09 Mensajes: 8 Localización:Ecuador |
Así es, está deshabilitado "Defaults requiretty".
Muchas gracias, funcionó, ya no tengo registros "AVC" en audit.log, SeLinux me permite ejecutar el comando, pero no se reinicia, obtengo este registro en error_log de httpd Entiendo que ya no tiene que ver con SeLinux, debe faltar alguna línea en el sudoers, sigo buscando pero aún no encuentro. Bueno, con setenforce 0, si se reinició... selinux? Cogito Ergo Sum |
|||||||
|
||||||||
Joel Barrios Dueñas |
|
|||||||
![]() ![]() ![]() ![]() ![]() Admin ![]() Estado: desconectado ![]() Identificado: 17/02/07 Mensajes: 1761 Localización:Mexico |
Sí, si con setenforce 0 si reinicia, significa que algo aún impide hacerlo. Aplica los pasos que menciono arriba con otro nombre de política.
|
|||||||
|
||||||||
Carlos David Yoong Loor |
|
|||||||
![]() ![]() ![]() ![]() ![]() Nuevo ![]() Estado: desconectado ![]() Identificado: 02/07/09 Mensajes: 8 Localización:Ecuador |
Ahora el audit2allow encuentra un error de sintaxis en los logs
PHP Formatted Code cat /var/log/audit/audit.log | audit2allow -M modulocompilation failed: modulo.te:6:ERROR 'syntax error' at token '' on line 6: /usr/bin/checkmodule: error(s) encountered while parsing configuration /usr/bin/checkmodule: loading policy configuration from modulo.te Las líneas 5,6,7 de mi audit.log: PHP Formatted Code type=CRED_ACQ msg=audit(1423618082.811:373): pid=2255 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:httpd_t:s0 msg='op=PAM:setcred acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success' type=USER_START msg=audit(1423618082.811:374): pid=2255 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:httpd_t:s0 msg='op=PAM:session_open acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success' type=USER_AVC msg=audit(1423618082.851:375): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='avc: received setenforce notice (enforcing=0) exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?' modulo.te generado: PHP Formatted Code module modulo 1.0; 5 líneas, la sexta no existe. Cogito Ergo Sum |
|||||||
|
||||||||
Joel Barrios Dueñas |
|
|||||||
![]() ![]() ![]() ![]() ![]() Admin ![]() Estado: desconectado ![]() Identificado: 17/02/07 Mensajes: 1761 Localización:Mexico |
El error es debido a que el archivo *.te no tiene políticas. No hay información útil en /var/log/audit/audit.log para generar la política y por alguna razón sudo no está generando registros en audit. Parece un bug en sudo que impide registrar la actividad en SELinux.
Sugiero operes con setenforce 0 (o edita /etc/sysconfig/selinux y pon en modo permisivo) por unos días hasta generar suficientes registros en audit para generar la política que te falte. Luego de eso puedes volver a operar con setenforce 1. |
|||||||
|
||||||||
Contenido generado en: 0.32 segundos |
![]() ![]() |
Todas las horas son CST. Hora actual 03:32 . |
|
|