Wir verwenden SSSD, um Benutzer auf CentOS-Servern zu authentifizieren. oddjobd-mkhomedir funktioniert einwandfrei, wenn das Standard-Ausgangsverzeichnis / home ist, aber auf einem bestimmten Server mussten wir das Standard-Ausgangsverzeichnis in / data ändern, das sich auf einem SAN-Mount befindet.
Jedes Mal, wenn ein Benutzer versucht, sich anzumelden, wird er mit der folgenden Meldung in eine Bash-Shell verschoben.
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$
Ich sehe die folgende AVC-Ablehnungsnachricht für jeden Versuch:
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
Stellen Sie sicher, dass Sie den Kontext für / data ändern.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Wenn / data denselben Kontext wie / home hat, warum beschränkt SELinux oddjobd auf die Erstellung von /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
[AKTUALISIEREN]
Ich bin mir nicht sicher, ob dies der richtige Weg ist, um dies zu lösen, aber nach dem Hinzufügen der folgenden drei Einträge können sich Benutzer jetzt anmelden und zu ihren Home-Verzeichnissen gelangen. Für neue Benutzer werden Verzeichnisse basierend auf dem unten definierten Kontext erstellt.
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(/.*)?"
Ist dies der richtige Weg, um dieses Problem zu umgehen?
Antworten:
Dieser letzte Abschnitt mit
semanage fcontext
ist der richtige Weg, um den Kontext dauerhaft auf Ja zu setzen. Sie müssen jedoch ausgeführt werdenrestorecon
, damit es wirksam wird.restorecon
berücksichtigt alles in/etc/selinux/targeted/contexts/files/file_contexts.local
, was Ihre benutzerdefinierten Kontexte haben sollte, die Sie gerade mit hinzugefügt habensemanage
Informationen zum vorübergehenden Festlegen dieser Kontexte finden Sie im folgenden
chcon
Befehl:quelle
Beim Verschieben von Home-Verzeichnissen besteht die beste Lösung wahrscheinlich darin, den EQUAL-Mechanismus zu verwenden, der
semanage fcontext
in dieser Antwort bei Serverfehlern beschrieben ist :Damit soll sichergestellt werden, dass alle Regeln des ursprünglichen Heimatorts auch auf den neuen angewendet werden.
quelle