Chúng tôi đang sử dụng SSSD để xác thực người dùng trên các máy chủ CentOS. lẻjobd-mkhomedir hoạt động hoàn toàn tốt khi thư mục chính mặc định là / home, nhưng trên một máy chủ cụ thể, chúng tôi đã phải thay đổi thư mục chính mặc định thành / data, trên giá đỡ SAN.
Bây giờ, mỗi khi người dùng cố gắng đăng nhập, họ sẽ rơi vào bash shell với thông báo sau.
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$
Tôi thấy thông báo từ chối AVC sau đây cho mọi lần thử:
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
Đã đảm bảo thay đổi bối cảnh cho / dữ liệu.
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 data
Nếu / dữ liệu có cùng bối cảnh với / home, tại sao SELinux lại hạn chế lẻjobd để tạo /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
[CẬP NHẬT]
Không chắc đây có phải là cách chính xác để giải quyết vấn đề này không, nhưng sau khi thêm ba mục sau đây, người dùng hiện có thể đăng nhập và vào thư mục chính của họ. Đối với các thư mục người dùng mới đang được tạo dựa trên bối cảnh được xác định bên dưới.
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(/.*)?"
Đây có phải là cách chính xác để khắc phục vấn đề này?