Đặt quyền truy cập tệp mặc định bằng setfacl


1

Tôi cần đặt ACL mặc định cho các tệp mới được tạo bởi httpd thông qua apache người dùng dịch vụ theo cách mà tệp được tạo với GUID được đặt thành tài khoản người dùng dev (cũng gọi đó là nhà phát triển ) và các quyền cụ thể.

Có vẻ như tôi đã có SGID hoạt động tốt, vì bất kỳ tệp nào được tạo bởi các trang web PHP đều có apache chủ sở hữu và nhà phát triển nhóm. Nhưng thay vì có ACL rwxrwx--- họ có rw-rw----.

[root@webserver ~]# cd /var/www/html
[root@webserver html]# setfacl -Rb .                  
[root@webserver html]# chmod -R g+s .                
[root@webserver html]# setfacl -Rdnm u:apache:rwx,g:devs:rwx .
[root@webserver html]# getfacl .
# file: .
# owner: apache
# group: devs
# flags: -s-
user::rwx
group::rwx
other::---
default:user::rwx
default:user:apache:rwx
default:group::rwx
default:group:devs:rwx
default:mask::rwx
default:other::---

[root@webserver html]# getfacl data.txt
# file: data.txt
# owner: apache
# group: devs
user::rw-
user:apache:rwx     #effective:rw-
group::rwx      #effective:rw-
group:devs:rwx    #effective:rw-
mask::rw-
other::---

Các data.txt tệp được tạo thông qua tập lệnh PHP được thực thi bởi httpd / apache. Quyền sở hữu được thiết lập đúng ( apache / nhà phát triển ), nhưng nó không được tạo với các quyền thực thi cho cả người dùng hoặc nhóm.

Máy chủ của Gordon đang chạy phiên bản CentOS 6.9 (Final)

Có ý kiến ​​gì không?

Cảm ơn!

Câu trả lời:


1

Quyền truy cập tệp Linux không bị ảnh hưởng bởi setgid bit trên thư mục. Đặt ID nhóm làm cho tệp được tạo bằng ID nhóm của thư mục, thay vì ID nhóm của người tạo.

Các quyền trên các tệp mới được tạo được chỉ định bởi người tạo tệp và bị ảnh hưởng bởi mặt nạ tạo tệp (umask) trong open hoặc các cuộc gọi hệ thống khác. Để ảnh hưởng đến quyền của tệp trong PHP, bạn sẽ sử dụng fopen hoặc là chmodv.v.

Điều này có thể được thực hiện mà không cần sử dụng ACL. Các lệnh này thực hiện cùng một điều:

chmod g+s .
chgrp devs .

Có vẻ như bất thường và không an toàn khi PHP tạo các tệp thực thi từ httpd. Tôi hy vọng bạn biết những gì bạn đang làm.


Vâng, tôi hiểu ý của bạn. Đây chủ yếu là các tệp nhật ký hoặc thông tin gỡ lỗi cần được tạo bởi apache và có thể truy cập bởi các nhà phát triển. Vì vậy, không có lý do cho các quyền thực thi. Tôi cho rằng tôi đã cố gắng hơn để tìm ra tại sao thực thi không được thêm vào khi tôi có thể làm cho các tệp được tạo tốt với một trong hai rw-rw---- hoặc là r--r-----, nhưng không bao giờ rwxrwx---. Không thực sự có kế hoạch để nó ở đó, đặc biệt là trong sản xuất. Cảm ơn!
Justin
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.