Tôi có các tệp khác nhau với các chủ sở hữu khác nhau, bắt đầu từ thư mục/var/www/*.
tập tin trong /var/www/
cần được đặt thành người dùng mà bạn sử dụng apache. Nếu không, bạn có thể gặp phải các vấn đề về quyền và một trang web có vấn đề bảo mật tiềm ẩn.
dữ liệu www
là người dùng mặc định cho apache (v1). Ngày nay apache (v2) sử dụng apache
như người dùng và nhóm. Xem cấu hình apache của bạn trên người dùng bạn sử dụng.
Thay đổi:
sudo vi /etc/apache2/apache2.conf
tìm 2 dòng (giả sử của bạn dữ liệu www
như bây giờ thiết lập):
dữ liệu www của người dùng
nhóm dữ liệu www
Nếu bạn chỉ muốn thay đổi nó thành người dùng và nhóm bạn sử dụng, bạn có thể đặt lại dữ liệu của mình bằng lệnh này (Sau khi thay đổi người dùng hoặc nhóm, bạn cũng cần thực hiện việc này):
sudo chown --recursive {user}:{group} /var/www/
thay đổi {user} và {group} thành nội dung trong tệp cấu hình và khởi động lại apache
sudo systemctl khởi động lại apache2
Các gợi ý chung khác:
Quyền đối với tệp và thư mục tối đa là:
Sudo chmod 755 /var/
Sudo chmod 755 /var/www/
sudo find /var/www/ -type d -exec chmod 755 {} \;
sudo find /var/www/ -type f -exec chmod 644 {} \; ]
- "0" có nghĩa là không có gì; "7" là đọc, viết và thực thi; "6" là đọc, viết. "d" có nghĩa là thư mục, "f" có nghĩa là tệp.
- Không đặt các tập tin thực thi trong
/var/www/
. Sử dụng một thư mục chuyên dụng (apache có tùy chọn cgi-bin cho việc này).
- Nếu có thể, hãy đặt "những người khác" thành "0".
- Nếu có thể, hãy đặt "nhóm" thành "0"; nhóm chỉ cần thiết nếu có 2 người dùng trở lên thay đổi tệp trên máy chủ
- Nếu đặt một trong số chúng thành "0" và nó tạo ra lỗi về quyền thì bạn có lỗi trong tệp cài đặt cho phần mềm cụ thể đó và nên sửa cài đặt đó thay vì thay đổi quyền.