Rutas comodín con semanage fcontext

1

Estoy tratando de establecer contextos SELinux dentro de una estructura de directorio. Así que es algo como esto:

/var/www/sites
    /www.example.com
        /html
        /logs
    /www.example.org
        /html
        /logs

Quiero establecer diferentes contextos en todos los directorios logs y los directorios html . Con chcon solo puedo hacer:

sudo chcon -Rt httpd_sys_rw_content_t /var/www/sites/*/html
sudo chcon -Rt httpd_log_t /var/www/sites/*/logs

Pero ahora quiero que sean permanentes y no tan fáciles con semanage fcontext . Parece que usa la selección de expresiones regulares basada en los documentos, que dan ejemplos como /myweb(/.*)? repetidamente. Así que intenté esto:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/sites/[^/]+/html(/.*)?"

Pero no hace ningún cambio. Cuando uso restorecon después de esto, nada ha cambiado. Si no intento usar [^/]+ , funciona bien:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/sites/www.example.com/html(/.*)?"

¿Puede alguien apuntarme en la dirección correcta? La documentación sobre esto es muy limitada de lo que he encontrado hasta ahora. ¿Cómo puedo usar una selección de comodín dentro de una ruta? Gracias.

    
pregunta SuperDuperApps 02.03.2017 - 05:32
fuente

3 respuestas

0

Todavía me gustaría saber si esto es posible usando el comando semanage fcontext directamente, pero encontré una manera de hacerlo usando find :

sudo find /var/www/sites -type d -regex "/var/www/sites/[^/]+/html" -exec semanage fcontext -a -t httpd_sys_rw_content_t '{}(/.*)?' \;
    
respondido por el SuperDuperApps 02.03.2017 - 17:52
fuente
1

Tal vez un poco de documentación sobre el formato de las expresiones regulares que admite semanage sería útil, he descubierto algunos patrones que funcionan solo a través de prueba y error.

Estos patrones han trabajado para que yo especifique varias rutas más allá del comodín para que termine:

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/(public/media|httpdocs/wp-content)/uploads(/.*)?"

Esto coincide con public/media/uploads y httpdocs/wp-content/uploads e hijos.

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/host/httpdocs(/subdir)?/wp-content/uploads(/.*)?"

Esto coincide con httpdocs/wp-content/... y httpdocs/eng/wp-content/...

Estoy haciendo de esta respuesta un wiki con la esperanza de que otros contribuyan con patrones de trabajo.

    
respondido por el Jesús Franco 31.10.2017 - 21:56
fuente
0

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/sites/.*/html(/.*)?"

Verás que se está utilizando este formato (en Centos 7 de forma predeterminada) ejecutando semanage fcontext -l | grep /var/www

    
respondido por el Corey 21.11.2018 - 21:34
fuente

Lea otras preguntas en las etiquetas