Các vấn đề về quyền của FTP và Apache


10

Tôi có vấn đề là người dùng nào nên sở hữu thư mục www của tôi - ftp hoặc apache? Khi được đặt thành người dùng ftp, người dùng có thể thêm, làm lại và dễ dàng sửa đổi các tệp nhưng các hành động của hệ thống tệp php tạo ra các quyền bị từ chối lỗi (tất nhiên vì chúng yêu cầu người dùng phải apache). Tuy nhiên, nếu thư mục www được chuyển sang apache, ftpuser sẽ không thể thực hiện một số hành động như sửa đổi và xóa tệp. Bất kỳ ai từng gặp vấn đề tương tự? Cách khắc phục là gì? Cảm ơn

Câu trả lời:


12

Đây là những gì nhóm dành cho.

Bạn có thể thêm ftpngười dùng vào apachenhóm và ngược lại. Hoặc, thậm chí tốt hơn, bạn có thể thêm chúng vào nhóm thứ ba mà bạn tạo riêng cho mục đích này.

ví dụ

# nhóm của tôi
# useradd -G mygroup ftp
# useradd -G mygroup apache
# chown -R: mygroup / var / www
# chmod -R g + rw / var / www

Những lệnh này làm như sau:

  1. Tạo nhóm mới 'mygroup'
  2. Thêm người dùng ftp vào nhóm của tôi
  3. Thêm người dùng apache vào nhóm của tôi
  4. Đệ quy cấp quyền sở hữu nhóm cho nội dung của / var / www / cho mygroup
  5. Cấp đệ quy cho nhóm đọc và ghi perms vào nội dung của / var / www /

Bạn chỉ cần đảm bảo rằng các tệp được thêm trong tương lai thuộc về nhóm 'mygroup' và có các quyền phù hợp cho cả apache và ftp để đọc / ghi chúng.


3
Kết hợp " find /var/www -type d -print0 | xargs -0 chmod g+s /var/www" với số dư 002 sẽ đảm bảo rằng các tệp và thư mục mới trong / var / www kế thừa nhóm và quyền phù hợp để nhóm có quyền truy cập r / w. Nhiều bản phân phối Linux hiện được mặc định là một số 002 (cùng một bản phân phối mặc định để tạo một nhóm mới cho mọi người dùng mới)
freiheit

Câu trả lời này hoạt động hoàn hảo! Nhưng tôi có một vấn đề mà người dùng vẫn có thể xem tất cả các thư mục khác bên ngoài liệu var/wwwcó phương pháp nào để hạn chế điều này không?
maxisme

3
Dòng 2 và 3 sẽ không hoạt động nếu người dùng đã tồn tại (trên CentOS 7). Trong trường hợp này sử dụng usermodví dụusermod -G mygroup ftp
nick

Đơn giản, tự giải thích, dễ hiểu! Hoàn hảo! Cảm ơn, @hobodave!
GTodorov

4

Hầu hết nội dung của bạn nên được sở hữu bởi một người dùng khác ngoài apache. Giả sử sử dụng FTP của bạn để cập nhật nội dung của bạn, bạn có thể đặt tất cả các tệp được sở hữu bởi ftp: apache. Tôi sẽ đề nghị sử dụng SCP cho SFTP thay vì ftp. Các tệp phải có quyền 644 hoặc 640 và quyền thư mục 755 hoặc 750.

Đối với các tệp và thư mục, ứng dụng cần ghi để thêm quyền truy cập ghi nhóm.


0

Tôi gặp vấn đề tương tự với trang php, một trang được xây dựng sẽ sao chép một thư mục trên máy chủ có tên khác. Tôi đã sửa nó bằng cách tắt chế độ an toàn php.


2
Chế độ an toàn PHP là có lý do. Tắt nó đi không phải là một ý tưởng tốt cả.
dùng9517
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.