ขั้นแรกเพิ่มตัวเองลงในกลุ่ม www-data
usermod -a -G www-data (your username)
แล้ว:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
ควรทำเคล็ดลับเว้นแต่ว่าการอนุญาตของคุณ/home/myuser
ไม่อนุญาตให้ผู้ใช้รายอื่นเข้าถึง
คำสั่งแรกเปลี่ยนความเป็นเจ้าของกลุ่มของโฟลเดอร์เป็นของเว็บเซิร์ฟเวอร์ คำสั่งที่สองให้สมาชิกของwww-data
กลุ่มอ่าน, เขียน, สิทธิในไดเรกทอรีและs
ธงกลุ่มจะให้แน่ใจว่าไฟล์ใด ๆ ที่ได้รับการสร้างขึ้นภายในไดเรกทอรีที่ใช้www-data
เป็นกลุ่ม - ดังนั้นหากคุณสร้างไฟล์ตามmyuser
ที่www-data
ผู้ใช้จะสามารถเข้าถึง
nb สิ่งนี้ยังขึ้นอยู่กับการumask
ตั้งค่าของบัญชีผู้ใช้ของคุณและเว็บเซิร์ฟเวอร์: คุณต้องตรวจสอบให้แน่ใจว่าไฟล์ที่สร้างในโฟลเดอร์ A มีrw
การเข้าถึงกลุ่ม(และไดเรกทอรีที่สร้างขึ้นภายในกลุ่มที่ต้องการrwx
)
หากเว็บเซิร์ฟเวอร์ของคุณไม่มีสิทธิ์ใน/home/myuser
dir ของคุณ(ค่อนข้างสมเหตุสมผล) คุณจะไม่เข้าไปในนั้นเว้นแต่คุณจะทำอย่างอื่น สอง solns:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(นี่เป็นแฮ็คที่น่าเกลียดและจะต้องทำซ้ำหลังจากรีบูต แต่เคล็ดลับที่ทรงพลังสามารถใช้เพื่อทำให้โฟลเดอร์สามารถเข้าถึงได้ภายในคุก SSH)
/home/shared-stuff/folderA
เพียงแค่ย้ายโฟลเดอร์ที่ใช้ร่วมกันที่อื่นเช่น
ตัวเลือกที่ 2 นั้นอร่อยที่สุด สมมติว่าเนื้อหาในโฟลเดอร์ A เป็นสาธารณะจริงๆและคุณไม่สนใจว่าใครจะเห็นคุณสามารถตั้งค่าได้
sudo mkdir -m777 /home/shared-stuff
จากนั้นคุณสามารถใส่ข้างในนั้นพูดโฟลเดอร์ A ที่มีสิทธิ์ข้างต้นและโฟลเดอร์ B ที่ www-data ไม่ควรเข้าถึงด้วยสิทธิ์ที่แตกต่างกันเช่น
$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data 4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser 4096 Jan 17 21:46 folderB
s
ในg+rwxs
?