Tôi đang chuyển trang web phpBB từ máy chủ dùng chung sang VPS, chạy Ubuntu 20.04. Tôi đã định cấu hình apache2 cho các miền ảo, vì tôi có nhiều hơn một miền. Đây là nơi có các bảng:
/var/www/example1.com/public_html/phpbb
/var/www/example2.com/public_html/phpbb
Tôi muốn có một người dùng duy nhất "userA" thực hiện các thay đổi đối với cả hai trang web, vì vậy tôi đã tạo một nhóm sftp "sftp_users" và thêm userA vào nhóm đó. Tôi cũng đã thêm userA vào nhóm dữ liệu www và thay đổi dòng này trong envvars:
xuất Apache_RUN_USER=www-data
để này:
xuất Apache_RUN_USER=userA
example1.com được sở hữu bởi root:root, public_html bởi root:sftp_users, phpbb và mọi thứ bên dưới được đệ quy bởi userA:www-data. Quyền cũng đã được đặt theo cách đệ quy - 755 cho thư mục và 644 cho tệp, theo hướng dẫn của phpBB. Và theo các nguyên tắc đó, các ngoại lệ là các thư mục tệp, lưu trữ, bộ đệm và hình ảnh/hình đại diện/tải lên (tất cả 777) và tệp phpbb/config.php (640).
Bảng có vẻ đang hoạt động - tuy nhiên, tôi đưa ra hai nhận xét:
Thành viên hội đồng quản trị có thể tải lên tệp đính kèm. Tuy nhiên, không giống như các tệp tôi đã chuyển từ máy chủ dùng chung mà các thành viên đã tải trước đó và tôi đã đặt quyền sở hữu cho các tệp đó là userA:www-data, các tệp được tải lên này hiển thị quyền sở hữu www-data:www-data. (Điều này cũng đúng với các tệp và thư mục do PHP tạo trong bộ nhớ cache theo yêu cầu.) Thay đổi mà tôi đã thực hiện đối với envvars dường như không có hiệu lực.
Quyền của các tệp đã tải lên là 666 chứ không phải 644 khi tôi đặt các tệp được chuyển (theo hướng dẫn của phpBB).
Tôi đoán rằng tôi muốn làm điều gì đó theo hướng được đề xuất bởi @Zoredache và @Tom tại đây:
Cách tốt nhất để xử lý quyền đối với dữ liệu www của người dùng Apache 2 trong/var/www là gì?
Nhưng nếu userA sở hữu các tệp, tôi không thể có được các quyền đối với tệp 644 được đề xuất thay vì 664 sao? Tại sao userA không phải là chủ sở hữu tệp - và ô 0022 có phải là câu trả lời để buộc quyền không?