Red Hat Training

A Red Hat training course is available for RHEL 8

26.5.17.3. Configuración de las opciones de la lista de permisos de bloqueo mediante archivos de configuración

El archivo de configuración allowlist por defecto contiene el contexto NetworkManager y el contexto por defecto de libvirt. El ID de usuario 0 también está en la lista.

<?xml version="1.0" encoding="utf-8"?>
	<whitelist>
	  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
	  <selinux context="system_u:system_r:virtd_t:s0-s0:c0.c1023"/>
	  <user id="0"/>
	</whitelist>

A continuación se muestra un ejemplo de archivo de configuración allowlist que habilita todos los comandos de la utilidad firewall-cmd, para un usuario llamado user cuyo ID de usuario es 815:

<?xml version="1.0" encoding="utf-8"?>
	<whitelist>
	  <command name="/usr/libexec/platform-python -s /bin/firewall-cmd*"/>
	  <selinux context="system_u:system_r:NetworkManager_t:s0"/>
	  <user id="815"/>
	  <user name="user"/>
	</whitelist>

Este ejemplo muestra tanto user id como user name, pero sólo se requiere una opción. Python es el intérprete y se antepone a la línea de comandos. También puede utilizar un comando específico, por ejemplo:

/usr/bin/python3 /bin/firewall-cmd --lockdown-on

En ese ejemplo, sólo se permite el comando --lockdown-on.

En Red Hat Enterprise Linux, todas las utilidades se colocan en el directorio /usr/bin/ y el directorio /bin/ está vinculado al directorio /usr/bin/. En otras palabras, aunque la ruta para firewall-cmd cuando se introduce como root podría resolver a /bin/firewall-cmd, ahora se puede utilizar /usr/bin/firewall-cmd. Todos los nuevos scripts deben utilizar la nueva ubicación. Pero tenga en cuenta que si los scripts que se ejecutan como root se escriben para utilizar la ruta /bin/firewall-cmd, entonces esa ruta de comandos debe añadirse en la lista de permisos además de la ruta /usr/bin/firewall-cmd que tradicionalmente sólo se utiliza para los usuarios que no son deroot.

El * al final del atributo name de un comando significa que todos los comandos que comienzan con esta cadena coinciden. Si el * no está ahí, entonces el comando absoluto, incluyendo los argumentos, debe coincidir.