SELinux không cho phép lẻjobd-mkhomedir tạo thư mục nhà của người dùng trên một vị trí không chuẩn


9

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?


Không chắc điều này có liên quan đến vấn đề của bạn không, nhưng nó đã khiến tôi đau buồn trong quá khứ: linux.die.net/man/8/nfs_selinux
0xSheepdog

Câu trả lời:


4

Phần cuối cùng đó semanage fcontextlà cách chính xác để đặt bối cảnh vĩnh viễn có. Bạn sẽ cần phải chạy restoreconđể có hiệu lực mặc dù.

restorecon -Rv /data

restoreconsẽ tính đến mọi thứ trong /etc/selinux/targeted/contexts/files/file_contexts.localđó, trong đó cần có các liên kết tùy chỉnh mà bạn vừa thêm bằng cách sử dụngsemanage

Để đặt các bối cảnh này tạm thời, hãy tham khảo chconlệnh:

chcon -Rv -t home_root_t /data 

1

Khi di chuyển các thư mục nhà, giải pháp tốt nhất có lẽ là sử dụng cơ chế THIẾT BỊ semanage fcontextnhư được mô tả trong câu trả lời này về lỗi máy chủ :

semanage fcontext -a -e /home /data

Điều này là để đảm bảo rằng tất cả các quy tắc của vị trí nhà ban đầu cũng được áp dụng cho vị trí mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.