ฉันต้องการให้ผู้ใช้ apache ของฉันสามารถอ่านและเขียนไฟล์ผู้ใช้ sftp ของฉันเพื่อให้สามารถอัปโหลดไฟล์ที่พร้อมใช้งาน (rwX) ให้กับทั้งผู้ใช้ sftp และ apache คนอื่น ๆ และทุกคนก็อ่านได้ก็โอเค .
Psst: I know this question comes up a lot, and I've been reading answers and trying many many things for two days now and am now thoroughly confused
. ด้วย ฉันตระหนักถึงความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับการอนุญาตให้ www-data เขียนเพื่อเข้าถึงเว็บไซต์ของฉัน แต่นั่นไม่ใช่ปัญหาที่ฉันจะพูดถึงที่นี่
นี่คือขั้นตอนของฉัน:
usermod -aG www-data tim
mkdir -p /var/www/mysite/public_html
# now upload/untar the site, etc. not shown here #
chown -R www-data:www-data /var/www/mysite
chmod -R u+rwX,go+rwX,g+s,o-w /var/www/mysite
# now make the apache virtual host and so on .. not shown here #
ไฟล์ภายใน public_html
มีการตั้งค่าเช่นนี้ - กลุ่มมีการเขียน:
-rw-rwSr-- 1 www-data www-data favicon.ico
ตอนนี้เข้าสู่ระบบในฐานะบัญชี "tim" ของฉันโดยใช้ sftp ฉันอัปโหลดไฟล์ใหม่ไปยังโฟลเดอร์ public_html จากนั้นดูที่การอนุญาต:
-rw-r--r-- 1 tim wwww-data COPYING.txt
ดังนั้นฉัน สูญหาย เขียนกลุ่มแม้ว่าฉันคิดว่าฉันจะเพิ่ม g+s
บนโฟลเดอร์พาเรนต์เพื่อให้สืบทอดกลุ่ม
เห็นได้ชัดว่านี่ไม่ได้หมายความว่ามันจะสืบทอดกลุ่ม / หน้ากาก / ฉันได้อ่านบางที่ (และสูญเสียการอ้างอิง) ที่ SFTP ไม่ให้เกียรติ umask; ดูเหมือนจะเป็นที่ที่สิทธิ์การสูญหาย แต่ฉันไม่รู้ว่าจะแก้ไขอย่างไร
แก้ไข พบการอ้างอิง umask และได้ลอง - http://john.parnefjord.se/node/62 - จะเห็นว่าไฟล์กำลังดำเนินการเข้าสู่ระบบ apon แต่ยังคงหน้ากากไม่ได้ตั้งค่าเป็น g + w หลังจากอัปโหลด
g+s
ส่งผลกระทบต่อ ID กลุ่มที่กำหนดให้กับไฟล์ใหม่เท่านั้นไม่ใช่สิทธิ์ของกลุ่ม