Estamos utilizando SSSD para autenticar usuarios en servidores CentOS. oddjobd-mkhomedir funciona perfectamente bien cuando el directorio de inicio predeterminado es / home, pero en un servidor en particular, tuvimos que cambiar el directorio de inicio predeterminado a / data, que está en un montaje SAN.
Ahora, cada vez que un usuario intenta iniciar sesión, se deja caer en un shell bash con el siguiente mensaje.
Creating home directory for first.last.
Could not chdir to home directory /data/X.Y.local/first.last: No such file or directory
-bash-4.1$
Veo el siguiente mensaje de denegación de AVC por cada intento:
type=AVC msg=audit(1492004159.114:1428): avc: denied { create } for pid=2832
comm="mkhomedir" name="x.y.local"
scontext=system_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023
tcontext=system_u:object_r:default_t:s0 tclass=dir
Se aseguró de cambiar el contexto de / data.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Si / data tiene el mismo contexto que / home, ¿por qué SELinux restringe oddjobd para crear /data/XYlocal/first.last?
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
[ACTUALIZAR]
No estoy seguro de si esta es la forma correcta de resolver esto, pero después de agregar las siguientes tres entradas, los usuarios ahora pueden iniciar sesión y acceder a sus directorios principales. Para los nuevos directorios de usuarios se crean en función del contexto que se define a continuación.
semanage fcontext -a -t home_root_t /data
semanage fcontext -a -t user_home_dir_t /data/x.y.local
semanage fcontext -a -t user_home_t "/data/x.y.local(/.*)?"
¿Es esta la forma correcta de solucionar este problema?
Respuestas:
Esa última sección con
semanage fcontext
es la forma correcta para fijar permanentemente el sí de contexto. Sinrestorecon
embargo, deberás correr para que surta efecto.restorecon
tomará en cuenta cualquier cosa/etc/selinux/targeted/contexts/files/file_contexts.local
que contenga los fcontextos personalizados que acaba de agregar usandosemanage
Para establecer estos contextos temporalmente, consulte el
chcon
comando:fuente
Al reubicar directorios de inicio, la mejor solución es probablemente usar el mecanismo EQUAL de
semanage fcontext
como se describe en esta respuesta en caso de falla del servidor :Esto es para garantizar que todas las reglas de la ubicación de la casa original también se apliquen a la nueva.
fuente