Product SiteDocumentation Site

5.10.3. Chequeando el Contexto SELinux Predeterminado

Use the /usr/sbin/matchpathcon command to check if files and directories have the correct SELinux context. From the matchpathcon(8) manual page: "matchpathcon queries the system policy and outputs the default security context associated with the file path."[12]. The following example demonstrates using the /usr/sbin/matchpathcon command to verify that files in /var/www/html/ directory are labeled correctly:
  1. Como usuario root de Linux, ejecute el comando touch /var/www/html/archivo{1,2,3} para crear tres archivos (archivo1, archivo2 y archivo3). Estos heredan el tipo httpd_sys_content_t del directorio /var/www/html/:
    # touch /var/www/html/file{1,2,3}
    # ls -Z /var/www/html/
    -rw-r--r--  root root unconfined_u:object_r:httpd_sys_content_t:s0 file1
    -rw-r--r--  root root unconfined_u:object_r:httpd_sys_content_t:s0 file2
    -rw-r--r--  root root unconfined_u:object_r:httpd_sys_content_t:s0 file3
    
    
  2. Como usuario root de Linux, ejecute el comando chcon -t samba_share_t /var/www/html/archivo1 para cambiar el tipo del archivo1 a samba_share_t. Nota: El Servidor HTTP Apache no puede leer archivos o directorios etiquetados con el tipo samba_share_t.
  3. La opción /usr/sbin/matchpathcon -V compara el contexto SELinux actual con el contexto predeterminado correcto dado por la política de SELinux. Ejecute el comando /usr/sbin/matchpathcon -V /var/www/html/* para chequear todos los archivos del directorio /var/www/html/:
    $ /usr/sbin/matchpathcon -V /var/www/html/*
    /var/www/html/file1 has context unconfined_u:object_r:samba_share_t:s0, should be system_u:object_r:httpd_sys_content_t:s0
    /var/www/html/file2 verified.
    /var/www/html/file3 verified.
    
    
La siguiente salida del comando /usr/sbin/matchpathcon explica que el archivo1 está etiquetado con el tipo samba_share_t, pero debería estar etiquetado con el tipo httpd_sys_content_t:
/var/www/html/file1 has context unconfined_u:object_r:samba_share_t:s0, should be system_u:object_r:httpd_sys_content_t:s0

Para resolver el problema de etiqueta y permitir al Servidor HTTP Apache acceder a archivo1, como usuario root de Linux corra el comando /sbin/restorecon -v /var/www/html/archivo1:
# /sbin/restorecon -v /var/www/html/file1
restorecon reset /var/www/html/file1 context unconfined_u:object_r:samba_share_t:s0->system_u:object_r:httpd_sys_content_t:s0



[12] The matchpathcon(8) manual page, as shipped with the libselinux-utils package in Fedora, is written by Daniel Walsh. Any edits or changes in this version were done by Murray McAllister.