Quyền / quyền sở hữu tốt nhất cho root tài liệu apache


14

Tôi cần một số trợ giúp để thiết lập quyền chính xác hoặc quyền sở hữu của tài liệu gốc apache. Đây là những gì tôi cần:

  • các trang web khác nhau được lưu trữ trong /var/www/html/<site>
  • Hai người dùng nên cập nhật / quản lý trang web thông qua ssh
  • quyền sở hữu phải khác với người dùng apache (để bảo mật)

Tôi có thể làm cái này như thế nào? Hiện tại tất cả các tập tin đều có thể ghi trên thế giới, điều này không tốt. Máy chủ chạy CentOS 5.5

Cảm ơn


Để có câu trả lời chi tiết hơn với các tùy chọn khác để bảo vệ tài liệu, hãy xem serverfault.com/questions/357108/ Lời
Quinn Comendant

Tôi nghĩ rằng nó tốt hơn để lưu trữ mỗi trang web ở một vị trí riêng biệt (không đặt cả ở DocumentRoot, sử dụng 2 máy ảo), sau đó mỗi người dùng quản trị hệ thống sở hữu chỉ trang web riêng của mình và thiết lập các nhóm sở hữu là cả hai trang web thư mục như các nhóm Apache
các kế toán

Câu trả lời:


22

Tạo một nhóm mới

groupadd webadmin

Thêm người dùng của bạn vào nhóm

usermod -a -G webadmin user1
usermod -a -G webadmin user2

Thay đổi quyền sở hữu của thư mục trang web

chown root:webadmin /var/www/html/

Thay đổi quyền của thư mục trang web

chmod 2775 /var/www/html/ -R

Bây giờ bất cứ ai cũng có thể đọc các tệp (bao gồm cả người dùng apache) nhưng chỉ có root và webadmin mới có thể sửa đổi nội dung của chúng.


Trông tôt đây. Nhưng điều gì xảy ra nếu người dùng tạo tập tin mới hoặc sao chép tập tin cập nhật. Là những quyền được áp dụng tự động? Hay anh ta cần phải chown và chmod mọi lúc?
Marco

Các tập tin sao chép duy trì quyền / quyền sở hữu. Quyền truy cập tệp mặc định cho các tệp mới được xử lý bằng umasklệnh. Thêm thông tin ở đây osr507doc.sco.com/en/OSUserG/_default_perms_new_file.html
Andy

3
bạn có thể tạo webadmin dir setgid để trợ giúp với các tệp mới
giao ước

1
^ +1. Cách nhanh nhất sẽ là: >> chmod 2775 -R / var / www / html /
James Broadhead

@James ta, được cập nhật
Andy

2

Tôi thích gắn kết phân vùng với -o acl. Điều này cho phép bạn sử dụng lệnh setfacl để cung cấp các quyền truy cập chi tiết tốt cho các tệp và thư mục, thay vì chỉ chỉ định các quyền khác của nhóm người dùng.

Vì vậy, hãy đặt acl vào dòng phân vùng của bạn trong / etc / fstab hoặc kết nối lại với mount -o remount, acl / mnt / xy, sau đó trao quyền sở hữu thư mục web của bạn cho bất kỳ ai: không ai. Chmod tới 770 và sử dụng setfacl để chỉ cấp quyền ghi trên các thư mục cần nó, vd. cung cấp dữ liệu www (hoặc người dùng máy chủ web của bạn chạy dưới dạng) ghi quyền cho thư mục tải lên và cấp quyền ghi cho người dùng của riêng bạn cho toàn bộ thư mục.

mkdir dir
chown nobody:nobody dir
setfacl -m u:www-data:r-x,d:u:www-data:r-x dir
setfacl -m u:www-data:rwx,d:u:www-data:rwx dir/upload
setfacl -m u:youruser:rwx,d:u:youruser:rwx dir

Bây giờ không ai có thể đọc các tệp của bạn, ngoài máy chủ web và người dùng của riêng bạn. Bạn có thể ghi vào mọi tệp trong thư mục và máy chủ web chỉ có thể ghi vào thư mục tải lên.

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.