Soy nuevo en SELinux. vino de debian. Quiero dar httpd
acceso a un directorio.
El navegador de alertas de SELinux sugiere:
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
No pude entender cómo funciona este comando. No especifico una ruta de directorio en ningún lado. ¿Cómo sabe qué directorio permitir httpd?
Anteriormente he usado grep para extraer texto de salida o archivo. Pero aquí grep se está utilizando en un proceso. Eso no lo entendí.
También cuál es la solución real. Si quiero dar acceso de escritura httpd a un directorio?
fedora
rhel
apache-httpd
selinux
Neel Basu
fuente
fuente
Respuestas:
Aquí se explica cómo cambiar permanentemente el contexto de un directorio:
Aquí hay más documentación sobre los diferentes contextos para httpd:
RHEL 7: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html
RHEL 6: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html
fuente
SELinux utiliza atributos extendidos que pueden agregarse a las estructuras de directorio en el disco. Piensa si estos son metadatos. Las listas de control de acceso (ACL) son otra.
Los atributos extendidos que necesita agregar a un directorio se denominan contextos y SELinux actúa como un policía de tráfico, asegurándose de que un ejecutable que tiene ciertos contextos tenga acceso al sistema de archivos en función de estos contextos. Puede ver lo que está disponible en el directorio utilizando el
-Z
interruptor parals
.Aquí puede ver que estos directorios tienen el contexto
httpd_sys_script_exec_t:s0
en elcgi-bin
directorio. y elhtml
dir. tienehttpd_sys_content_t:s0
.Puede agregarlos con el
chcon
comando:El comando que está preguntando simplemente cargará el módulo
mypoll.pp
. No creo que otorgue ningún permiso a nada, es probable que haya más mensajesaudit.log
que le faltan con su comando, que le dirá con más detalle lo que necesita. hacer para permitir el acceso.Le animo a que se tome un tiempo y se familiarice con SELinux. Es confuso al principio, pero generalmente es sencillo, después de pasar un poco de tiempo con él. Vea los recursos a continuación para comenzar.
Referencias
fuente
chcon -R -t httpd_sys_content_t <dir>