Używamy SSSD do uwierzytelniania użytkowników na serwerach CentOS. oddjobd-mkhomedir działa doskonale, gdy domyślnym katalogiem osobistym jest / home, ale na konkretnym serwerze musieliśmy zmienić domyślny katalog osobisty na / data, który jest podłączony na SAN.
Teraz za każdym razem, gdy użytkownik próbuje się zalogować, jest on upuszczany w powłoce bash z następującym komunikatem.
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$
Za każdym razem widzę następujący komunikat o odmowie AVC:
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
Upewnij się, że zmieniłeś kontekst dla / data.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Jeśli / data ma taki sam kontekst jak / home, dlaczego SELinux ogranicza dziwjobd do tworzenia /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
[AKTUALIZACJA]
Nie jestem pewien, czy jest to właściwy sposób na rozwiązanie tego problemu, ale po dodaniu następujących trzech wpisów użytkownik może teraz zalogować się i uzyskać dostęp do swoich katalogów domowych. Dla nowych użytkowników katalogi są tworzone na podstawie kontekstu zdefiniowanego poniżej.
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(/.*)?"
Czy to właściwy sposób na obejście tego problemu?