ฉันกำลังย้ายไซต์ phpBB จากเซิร์ฟเวอร์ที่ใช้ร่วมกันไปยัง VPS โดยใช้ Ubuntu 20.04 ฉันได้กำหนดค่า apache2 สำหรับโดเมนเสมือน เนื่องจากฉันมีมากกว่าหนึ่งโดเมน นี่คือตำแหน่งของบอร์ด:
/var/www/example1.com/public_html/phpbb
/var/www/example2.com/public_html/phpbb
ฉันต้องการให้มีผู้ใช้คนเดียว "userA" ที่ทำการเปลี่ยนแปลงกับทั้งสองไซต์ ดังนั้นฉันจึงสร้างกลุ่ม sftp "sftp_users" และเพิ่ม userA เข้าไป ฉันได้เพิ่ม userA ลงในกลุ่ม www-data แล้ว และเปลี่ยนบรรทัดนี้เป็น envvars:
ส่งออก APACHE_RUN_USER=www-ข้อมูล
สำหรับสิ่งนี้:
ส่งออก APACHE_RUN_USER=userA
example1.com เป็นเจ้าของโดย root:root, public_html โดย root:sftp_users และ phpbb และทุกอย่างที่อยู่ภายใต้การเรียกซ้ำโดย userA:www-data สิทธิ์ได้รับการตั้งค่าซ้ำเช่นกัน - 755 สำหรับไดเร็กทอรี และ 644 สำหรับไฟล์ ตามหลักเกณฑ์ของ phpBB และตามคำแนะนำเหล่านั้น ข้อยกเว้นคือไฟล์ ร้านค้า แคช และไดเร็กทอรี images/avatars/uploads (777 ทั้งหมด) และไฟล์ phpbb/config.php (640)
ดูเหมือนว่าบอร์ดจะใช้งานได้ - อย่างไรก็ตาม ฉันมีข้อสังเกตสองข้อ:
สมาชิกในบอร์ดสามารถอัปโหลดไฟล์แนบ อย่างไรก็ตาม ไม่เหมือนกับไฟล์ที่ฉันย้ายจากเซิร์ฟเวอร์ที่ใช้ร่วมกันซึ่งสมาชิกเคยโหลดไว้ก่อนหน้านี้ และเป็นเจ้าของไฟล์ที่ฉันสร้าง userA:www-data ไฟล์ที่อัปโหลดเหล่านี้แสดงความเป็นเจ้าของ www-data:www-data (นี่เป็นเรื่องจริงสำหรับไฟล์และไดเร็กทอรีที่ PHP สร้างขึ้นในแคชตามต้องการ) การเปลี่ยนแปลงที่ฉันทำกับ envvars ดูเหมือนจะไม่มีผล
สิทธิ์ของไฟล์ที่อัพโหลดคือ 666 ไม่ใช่ 644 เนื่องจากฉันตั้งค่าไฟล์ที่พอร์ต (ตามหลักเกณฑ์ของ phpBB)
ฉันเดาว่าฉันต้องการทำอะไรบางอย่างตามคำแนะนำของ @Zoredache และ @Tom ที่นี่:
วิธีที่ดีที่สุดในการจัดการสิทธิ์สำหรับผู้ใช้ www-data ของ Apache 2 ใน /var/www คืออะไร
แต่ถ้าผู้ใช้ A เป็นเจ้าของไฟล์ ฉันจะไม่ได้รับสิทธิ์อนุญาตไฟล์ 644 ที่แนะนำแทน 664 ได้ไหม เหตุใดผู้ใช้จึงไม่ใช่เจ้าของไฟล์ - และเป็น umask ของ 0022 คำตอบสำหรับการบังคับสิทธิ์