Điểm:0

Cho phép nâng cấp Wordpress với SELinux trong EL8 với nginx/php-fpm

lá cờ vn

Tôi đang cố gắng cho phép sử dụng các bản nâng cấp Wordpress (không phải bản cập nhật plugin) trực tiếp trên giao diện web.

Tôi đã có SELinux làm việc cho mọi thứ trừ tính năng này. Khi cố gắng tìm hiểu những gì nên được phép, tôi không thể tìm thấy chính xác những gì cần thay đổi thay vì dán nhãn lại toàn bộ /đường dẫn/đến/wordpress/thư mục đến unconfined_u:object_r:httpd_sys_rw_content_t:s0

Đây là những gì đang xảy ra khi tôi cố nâng cấp qua giao diện web:

==> /var/log/nginx/kosen.energy.access.log <==
172.21.1.28 - - [22/Jul/2021:14:21:27 -0300] "POST /wp-cron.php?doing_wp_cron=1626974487.4410700798034667968750 HTTP/1.0" 200 0 "https://kosen.energy/wp-cron .php?doing_wp_cron=1626974487.4410700798034667968750" "WordPress/5.7.2; https://kosen.energy"
172.21.1.28 - - [22/Jul/2021:14:21:29 -0300] "NHẬN /wp-admin/update-core.php HTTP/1.0" 200 155053 "https://kosen.energy/wp-admin /update-core.php?action=do-core-upgrade" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, như Gecko) Phiên bản/14.1.1 Safari/605.1.15"

==> /var/log/audit/audit.log <== type=AVC msg=audit(1626974498.501:10696): avc: bị từ chối { ghi } cho pid=9658 comm="php-fpm" name="update- core.php" dev="dm-0" ino=101266980 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_sys_content_t:s0 tclass=file permissive=0

==> /var/log/nginx/error.log <== 2021/07/22 14:21:38 [lỗi] 9646#0: *38349 FastCGI đã gửi trong thiết bị lỗi chuẩn: "Thông báo PHP: Cảnh báo PHP: sao chép(/ var/www/html/kosen.energy/wp-admin/includes/update-core.php): không mở được luồng: Quyền bị từ chối trong /var/www/html/kosen.energy/wp-admin/includes/class- wp-filesystem-direct.php trên dòng 309" trong khi đọc ngược dòng, máy khách: 172.21.1.28, máy chủ: _, yêu cầu: "POST /wp-admin/update-core.php?action=do-core-upgrade HTTP/1.0 ", ngược dòng: "fastcgi://unix:/run/php-fpm/www.sock:", máy chủ lưu trữ: "kosen.energy", liên kết giới thiệu: "https://kosen.energy/wp-admin/update-core .php"

==> /var/log/nginx/kosen.energy.access.log <==
172.21.1.28 - - [22/Jul/2021:14:21:38 -0300] "POST /wp-admin/update-core.php?action=do-core-upgrade HTTP/1.0" 200 150059 "https:/ /kosen.energy/wp-admin/update-core.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, như Gecko) Phiên bản/14.1.1 Safari/605.1.15"

Trên wp-config.conf tôi đã có FS_METHOD như thẳng thắn:

/** Kích hoạt hỗ trợ phù hợp cho các bản cập nhật mà không cần FTP/FTPS. */
xác định ('FS_METHOD', 'trực tiếp');

php-fpm đã chạy như nginx người dùng:

[root@kosen kosen.energy]# người dùng grep /etc/php-fpm.d/www.conf | grep -v \;
người dùng = nginx
nghe.acl_users = apache,nginx

Thông tin bổ sung:

[root@kosen kosen.energy]# rpm -qa | egrep "php-fpm|nginx"
nginx-mod-http-xslt-filter-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.x86_64
nginx-mod-http-image-filter-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.x86_64
nginx-mod-http-perl-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.x86_64
nginx-mod-mail-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.x86_64
nginx-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.x86_64
nginx-all-modules-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch
nginx-filesystem-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.noarch
nginx-mod-stream-1.14.1-9.0.1.module+el8.0.0+5347+9282027e.x86_64
php-fpm-7.4.6-4.module+el8.3.0+7685+72d70b58.x86_64

Cảm ơn.

Điểm:1
lá cờ cz

Tất cả các tệp WordPress sẽ phải có thể ghi để sử dụng chức năng nâng cấp từ trang web quản trị. Tôi không làm điều này; tôi sử dụng wp lệnh nâng cấp WordPress trực tiếp trên máy chủ.

cập nhật lõi wp
cập nhật lõi wp-db
lá cờ vn
Tôi phải thêm wp-cli để sử dụng chức năng này phải không? Bạn có giải pháp nào khi bạn quản trị máy chủ mà một người dùng chung (không phải sysadmin) lại là người duy trì trang Wordpress không? Cảm ơn!
Michael Hampton avatar
lá cờ cz
Vâng, đây là wp-cli. Người dùng có thể tự chạy nó khi các tệp thuộc sở hữu của họ (vì chúng có thể nên như vậy).
lá cờ vn
Tôi đang đánh dấu là câu trả lời đúng vì đó là một ý tưởng hay cho vấn đề. Về quyền của người dùng, vì hôm nay chúng tôi có nó chạy dưới nginx:nginx, bạn đang nói rằng tôi nên tạo một người dùng và họ cho phép user:nginx tất cả các tệp? Nhưng một lần nữa, tôi sẽ phải giáo dục người dùng, vì ssh không phải là thứ mà họ biết.
Michael Hampton avatar
lá cờ cz
Phải, nginx không cần toàn quyền đối với các tệp, nó chỉ cần có thể đọc chúng. php-fpm phải có khả năng ghi vào thư mục tải lên. Tất cả phần còn lại có thể được sở hữu bởi người dùng.
lá cờ vn
Tôi sẽ làm theo cách đó, cảm ơn Michael!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.