SELinux ngăn Apache ghi vào tệp


12

SELinux đang ngăn apachengười dùng ghi vào tệp nhật ký mà nó sở hữu. Khi tôi làm setenforce 0nó hoạt động. Nếu không, nó hiển thị lỗi này

IOError: [Errno 13] Permission denied: '/var/www/webapp/k/site/k.log'

Bối cảnh bảo mật của tập tin:

$ ll -Z k.log 
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 k.log

Tập tin được tạo khi chế độ SELinux được đặt thành cho phép.

Làm thế nào để thiết lập bối cảnh bảo mật để apachengười dùng có thể viết trong thư mục đó? Tôi đã thiết lập bối cảnh bảo mật thư mục bằng cách sử dụng chconnhưng tôi không thể tìm thấy loại tệp phù hợp.

Từ audit.log:

type=AVC msg=audit(1409945481.163:1561): avc:  denied  { append } for  pid=16862 comm="httpd" name="k.log" dev="dm-1" ino=201614333 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=file
type=SYSCALL msg=audit(1409945481.163:1561): arch=c000003e syscall=2 success=no exit=-13 a0=7fa8080847a0 a1=441 a2=1b6 a3=3 items=0 ppid=15256 pid=16862 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

Câu trả lời:


10

Đối với các tệp bạn muốn Apache có thể ghi vào, loại phải được đặt thành httpd_sys_rw_content_t.


18

Như đã nêu, bạn nên hướng dẫn SELINUX cho phép ghi vào tệp đó. Điều đúng đắn là đánh dấu /var/www/webapp/k/site/là loạihttpd_sys_rw_content_t

Để đánh dấu vĩnh viễn thư mục đó là httpd_sys_rw_content_t, bạn có thể sử dụng lệnh semanage fcontext -a -t httpd_sys_rw_content_t /var/www/webapp/k/site(/.*)?; restorecon -RF /var/www/webapp/k/site/ Điều này sẽ tồn tại trong bản cập nhật chính sách nhị phân của SelinUX và hệ thống lại tệp.


2
điều này nên được đánh dấu là câu trả lời đúng. và nên đánh dấu vĩnh viễn thư mục (như đã nêu trong câu trả lời này).
skidadon

1
Bạn có thể cần phải thoát khỏi dấu ngoặc đơn từ vỏ.
Michael Hampton

6

Điều này sẽ thay đổi các quyền:

chcon --type httpd_sys_rw_content_t /var/www/webapp/k/site/k.log

1
Tôi gặp lỗi này: -bash: lỗi cú pháp gần mã thông báo không mong muốn `('
Derrick Miller
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.