เรากำลังใช้ SSSD เพื่อตรวจสอบผู้ใช้บนเซิร์ฟเวอร์ CentOS oddjobd-mkhomedir ทำงานได้อย่างสมบูรณ์แบบเมื่อโฮมไดเร็กตอรี่เริ่มต้นคือ / home, แต่บนเซิร์ฟเวอร์เฉพาะ, เราต้องเปลี่ยนโฮมไดเร็กตอรี่เริ่มต้นเป็น / data, ซึ่งอยู่บนเมาท์ SAN.
ตอนนี้ทุกครั้งที่ผู้ใช้พยายามเข้าสู่ระบบพวกเขาจะถูกทิ้งลงในเปลือกทุบตีด้วยข้อความต่อไปนี้
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$
ฉันเห็นข้อความปฏิเสธ 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
ตรวจสอบให้แน่ใจว่าได้เปลี่ยนบริบทสำหรับ / data
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
หาก / data มีบริบทเหมือนกันกับ / home เหตุใด SELinux จึง จำกัด การใช้งาน oddjobd เพื่อสร้าง /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
[อัปเดต]
ไม่แน่ใจว่านี่เป็นวิธีที่ถูกต้องในการแก้ไขหรือไม่ แต่หลังจากเพิ่มผู้ใช้สามรายต่อไปนี้จะสามารถเข้าสู่ระบบและไปที่โฮมไดเร็กตอรี่ของพวกเขาได้ สำหรับไดเรกทอรีของผู้ใช้ใหม่จะถูกสร้างขึ้นตามบริบทที่กำหนดไว้ด้านล่าง
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(/.*)?"
นี่เป็นวิธีที่ถูกต้องในการแก้ไขปัญหานี้หรือไม่?