Selinux httpd ghi quyền truy cập vào một thư mục


9

Tôi chưa quen với SELinux. đến từ debian. Tôi muốn cung cấp httpdquyền truy cập vào một thư mục.

Trình duyệt cảnh báo SELinux gợi ý:

# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp 

Tôi không thể hiểu làm thế nào để lệnh này hoạt động. Tôi không chỉ định một đường dẫn thư mục bất cứ nơi nào. Làm thế nào để nó biết thư mục nào cho phép httpd?

Trước đây tôi đã sử dụng grep để trích xuất văn bản từ đầu ra hoặc tệp. Nhưng ở đây grep đang được sử dụng trên một quy trình. Điều đó tôi đã không nhận được.

Ngoài ra giải pháp thực tế là gì. Nếu tôi muốn cung cấp quyền truy cập ghi httpd vào một thư mục?


4
Và để trả lời câu hỏi khác của bạn, aud2allow đọc tệp nhật ký SELinux và viết chính sách cho phép mọi thứ bị chặn; Tên thư mục sẽ có trong thông điệp tường trình. Bằng cách grepping cho httpd, bạn giới hạn nó một chút, nhưng phương thức vẫn rộng hơn mức cần thiết.
miken32

Câu trả lời:


17

Đây là cách thay đổi vĩnh viễn ngữ cảnh của một thư mục:

# install semanage if you don't already have it:
yum install policycoreutils-python

# give the directory a new default context. The part at the end is a regex.
semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/directory(/.*)?"

# apply the default context to the directory
restorecon -R /path/to/directory

Dưới đây là một số tài liệu khác về các bối cảnh khác nhau cho httpd:

RHEL 7: https://access.redhat.com/documentation/en-US/Red_Hat_ Entryprise_Linux / 7 / html / SHIux_Usftimeand

RHEL 6: https://access.redhat.com/documentation/en-US/Red_Hat_ Entryprise_Linux / 6 / html /Quản lý


Hoàn hảo !! Làm việc cho tôi trong Fedora 26, policycoreutils-python đã được cài đặt theo mặc định.
Sir_Faenor

5

SELinux sử dụng các thuộc tính mở rộng có thể gắn vào cấu trúc thư mục trên đĩa. Hãy suy nghĩ nếu đây là dữ liệu meta. Danh sách điều khiển truy cập (ACL) là một danh sách khác.

Các thuộc tính mở rộng mà bạn cần thêm vào thư mục được gọi là bối cảnh và SELinux hoạt động như một cảnh sát giao thông, đảm bảo rằng một tệp thực thi có bối cảnh nhất định được phép truy cập vào hệ thống tệp dựa trên các bối cảnh này. Bạn có thể thấy những gì có sẵn trên thư mục bằng cách sử dụng -Zchuyển sang ls.

$ sudo ls -Z /var/www
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html

Ở đây bạn có thể thấy rằng các thư mục này có bối cảnh httpd_sys_script_exec_t:s0trên cgi-binthư mục. và htmlthư mục. có httpd_sys_content_t:s0.

Bạn có thể thêm chúng bằng cách sử dụng chconlệnh:

$ sudo chcon -t httpd_sys_content_t public_html

Lệnh bạn đang hỏi sẽ chỉ đơn giản là tải mô-đun mypoll.ppTôi không tin rằng nó sẽ cấp bất kỳ quyền nào cho bất cứ điều gì, có thể có nhiều thông báo trong phần audit.logbạn đang thiếu với lệnh của bạn, điều đó sẽ cho bạn biết chi tiết hơn những gì bạn cần phải làm để cho phép truy cập.

Tôi khuyến khích bạn dành chút thời gian và làm quen với SELinux. Ban đầu nó khó hiểu nhưng nói chung là đơn giản, sau khi dành một chút thời gian với nó. Xem các tài nguyên dưới đây để giúp bạn bắt đầu.

Người giới thiệu


Cảm ơn. Tôi sẽ đi qua chúng. Nhưng bạn có thể cho tôi biết bây giờ tôi cần làm gì để cấp quyền truy cập ghi vào thư mục này không?
Neel Basu

Nếu đó là nội dung mà bạn muốn Apache đọc, có thể bạn cần thêm ngữ cảnh này vào thư mục:chcon -R -t httpd_sys_content_t <dir>
slm
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.