Kami menggunakan SSSD untuk mengautentikasi pengguna di server CentOS. oddjobd-mkhomedir berfungsi dengan baik ketika direktori home default adalah / home, tetapi pada server tertentu, kami harus mengubah direktori home default ke / data, yang ada di SAN mount.
Sekarang, setiap kali pengguna mencoba masuk, mereka akan jatuh ke bash shell dengan pesan berikut.
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$
Saya melihat pesan penolakan AVC berikut untuk setiap upaya:
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
Pastikan untuk mengubah konteks untuk / data.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Jika / data memiliki konteks yang sama dengan / home, mengapa SELinux membatasi oddjobd untuk membuat /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
[MEMPERBARUI]
Tidak yakin apakah ini cara yang benar untuk menyelesaikan masalah ini, tetapi setelah menambahkan tiga entri berikut, pengguna kini dapat masuk dan membuka direktori home mereka. Untuk direktori pengguna baru dibuat berdasarkan konteks yang ditentukan di bawah ini.
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(/.*)?"
Apakah ini cara yang benar untuk mengatasi masalah ini?