ปัญหาการอนุญาตกับ / var / www / html และโฮมไดเร็กตอรี่ของฉันเองสำหรับรูทเอกสารเว็บไซต์


34

ฉันพยายามที่จะไม่ให้ได้รับอนุญาตใน 777 ของฉัน/var/www/htmlโฟลเดอร์ sudoแต่ฉันต้องการที่จะแก้ไขไฟล์ของฉันโดยไม่ ดังนั้นผมคิดว่าในการสร้าง symlink /var/www/htmlของโฟลเดอร์ในไดเรกทอรีบ้านของฉันภายใน ฉันสร้างโดยใช้sudo ln -sT /home/andre/www/moodle/ moodleและls -laผลลัพธ์คือ:

andre@andre-270E5G:/var/www/html$ ls -la
total 8
drwxr-xr-x 2 root root 4096 Mai  4 10:20 .
drwxr-xr-x 4 root root 4096 Abr 29 14:29 ..
lrwxrwxrwx 1 root root   23 Mai  4 10:20 moodle -> /home/andre/www/moodle/

ดังนั้นโฟลเดอร์ moodle ของฉันอ่านเขียนและดำเนินการอนุญาตสำหรับทุกคนและนั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันใช้คำสั่งsudo chmod -R 775 moodle/พยายามที่จะเปลี่ยน แต่มันยังคงอยู่กับการอ่านเขียนและดำเนินการสิทธิ์ทั้งหมด ฉันลองแบบเดียวกันกับโฟลเดอร์ moodle /home/andre/www/moodleแต่มันยังคงเหมือนเดิม ผลลัพธ์ของls -laใน/home/andre/www/คือ:

andre@andre-270E5G:~/www$ ls -la
total 28
drwxrwxr-x  3 andre andre  4096 Mai  4 10:02 .
drwx------ 49 andre andre 20480 Mai  4 10:01 ..
drwxrwxr-x 41 andre andre  4096 Mai  4 10:02 moodle

ดังนั้นโฟลเดอร์moodleใน/home/andre/www/มีสิทธิ์ที่ฉันต้องการ

เป็นปัญหาเพิ่มเติมเมื่อฉันเข้าถึงlocalhost/moodleฉันได้รับข้อผิดพลาดต้องห้าม 403

ฉันทำอะไรผิดที่นี่

คำตอบ:


63

คุณไม่ควรจะต้องใช้เว็บไซต์จากภายในไดเรกทอรีบ้านของคุณ EVER มิฉะนั้นคุณจะต้องให้ความสามารถในการสำรวจผ่านเว็บเซิร์ฟเวอร์/home/เพื่อดูโครงสร้างไดเรกทอรี แต่รวมถึง/home/$USER/(โฮมไดเร็กตอรี่ของผู้ใช้ของคุณซึ่งเราสามารถลองและดูว่ามีอะไรอีกในไดเรกทอรีผู้ใช้ของคุณ) รวมถึงโฟลเดอร์ย่อยอื่น ๆ ในนั้น. เว็บเซิร์ฟเวอร์ที่มีการกำหนดค่าไม่ดีหรือกำหนดค่าผิดพลาดหรือไม่ตรงกันอาจทำให้เกิดการรั่วไหลของข้อมูลขนาดใหญ่ด้วยวิธีนี้หรือการสูญเสียข้อมูลประจำตัวและสิ่งเหล่านี้จะทำให้ข้อมูลส่วนบุคคลของคุณและการเข้าสู่ระบบ วิธี symlink ที่คุณใช้ไม่ได้ช่วยด้วยเหตุผลเดียวกับการพยายามให้สิทธิ์ Apache อ่าน/home/andre/www/moodle- เว็บเซิร์ฟเวอร์จะต้องสามารถสำรวจโฮมไดเร็กตอรี่ของคุณเพื่อไปยังตำแหน่งที่ symlink /var/www/htmlชี้ไปซึ่งยังคงเสี่ยงต่อความปลอดภัย

sudo cp -r /home/andre/www/moodle/ /var/www/html/ประการแรกการใช้งาน สิ่งนี้จะคัดลอกไฟล์ของคุณไป/var/www/htmlและเก็บให้ห่างจากโฮมไดเร็กตอรี่ของคุณเอง. จากนั้นเราจะทำซ้ำการอนุญาตเพื่อให้คุณและเว็บเซิร์ฟเวอร์สามารถเข้าถึงทุกสิ่งในไดเรกทอรีนั้นและให้ผู้ใช้ของคุณอ่าน / เขียนไฟล์และไดเรกทอรีทั้งหมดได้อย่างเต็มที่ จากนั้นคุณจะต้องทำงาน/var/www/htmlให้กับไซต์ของคุณเท่านั้น

นี่คือผลสี่ขั้นตอนหลังจากที่คุณคัดลอกข้อมูลของคุณกลับไปที่/var/www/html:

  1. ให้ Apache เข้าถึงโฟลเดอร์และไฟล์เพื่อให้สามารถให้บริการไซต์ได้โดยไม่มีข้อผิดพลาด 403
  2. มอบให้เจ้าของ 'ของคุณ' เหนือไฟล์และโฟลเดอร์และให้ตัวเองอ่าน / เขียนในทุกไฟล์และโฟลเดอร์เช่นเดียวกับความสามารถในการสำรวจไดเรกทอรี
  3. (ไม่บังคับ แต่แนะนำ)ตั้งขึ้นดังกล่าวว่าไฟล์หรือโฟลเดอร์ใด ๆ www-dataที่สร้างขึ้นจากจากนี้ในความสมบูรณ์ของโครงสร้างไดเรกทอรีที่มีชุดของกลุ่มเป็น
  4. (ไม่บังคับ) การล้างข้อมูลความปลอดภัยขั้นสุดท้ายที่เราตั้งค่าการอนุญาตเพื่อให้คุณและเว็บเซิร์ฟเวอร์สามารถดูข้อมูลไซต์ได้ แต่ผู้ใช้รายอื่นไม่สามารถเข้าถึงไฟล์หรือโครงสร้างไดเรกทอรีของเว็บไซต์ได้

(1) อนุญาตให้ Apache เข้าถึงโฟลเดอร์และไฟล์ต่างๆ

sudo chgrp -R www-data /var/www/html
sudo find /var/www/html -type d -exec chmod g+rx {} +
sudo find /var/www/html -type f -exec chmod g+r {} +

การดำเนินการนี้จะตั้งค่า 'กลุ่ม' ซ้ำwww-dataสำหรับโฟลเดอร์และไฟล์ จากนั้นให้สิทธิ์การใช้เว็บเซิร์ฟเวอร์ในการเรียกคืนและเข้าถึงโครงสร้างไดเรกทอรีรากของเอกสารไซต์ ( +xสำหรับไดเรกทอรีเท่านั้น) นอกจากนี้ยังช่วยให้มั่นใจว่าเว็บเซิร์ฟเวอร์ได้อ่านสิทธิ์สำหรับไฟล์ทั้งหมดดังนั้นจึงสามารถรับข้อมูลไซต์ได้

อาจมีบางกรณีที่คุณต้องให้สิทธิ์การเขียนเว็บเซิร์ฟเวอร์ไปยังไฟล์หรือไดเรกทอรี - ซึ่งสามารถทำได้โดยการทำsudo chmod g+w /var/www/html/PATH(ที่PATHเป็นเส้นทางไปยังไฟล์หรือโฟลเดอร์ในโครงสร้างไดเรกทอรีที่คุณต้องใช้ สิทธิ์การเขียนสำหรับเว็บเซิร์ฟเวอร์)

ข้อสังเกต : มีหลายกรณีที่ข้อมูลนี้อาจเปิดเผยข้อมูล 'ปลอดภัย' เกี่ยวกับการกำหนดค่าไซต์ (เช่นข้อมูลการเข้าถึงฐานข้อมูลเป็นต้น) และคุณควรลบสิทธิ์การเข้าถึงข้อมูลอื่น ๆ ของไฟล์หรือไดเรกทอรีเหล่านั้นด้วย ต่อไปนี้: sudo chmod o-rwx /var/www/html/FILEPATH(แทนที่FILEPATHด้วยพา ธ ที่สัมพันธ์กับ/var/www/htmlโฟลเดอร์ของไฟล์)

โปรดทราบว่าคุณอาจต้องเรียกใช้คำสั่งเหล่านี้อีกครั้งในอนาคตหาก 'ไฟล์ใหม่' ได้รับปัญหา 403 เพื่อให้สิทธิ์ที่ถูกต้องกับเว็บเซิร์ฟเวอร์เพื่อให้สามารถเข้าถึงไฟล์และโฟลเดอร์ที่สร้างหรือคัดลอกและ ไม่ได้รับการwww-dataตั้งค่ากลุ่มอย่างถูกต้อง


(2) ให้สิทธิ์การอ่าน / เขียนแก่เจ้าของของคุณไปยังโฟลเดอร์และไฟล์และอนุญาตให้เข้าถึงโฟลเดอร์เพื่อสำรวจโครงสร้างไดเรกทอรี

sudo chown -R USER /var/www/html/
sudo find /var/www/html -type d -exec chmod u+rwx {} +
sudo find /var/www/html -type f -exec chmod u+rw {} +

แทนที่USERในคำสั่งแรกด้วยชื่อผู้ใช้ของคุณเอง!

เราทำสามสิ่งที่นี่ อันดับแรกเราตั้งค่าผู้ใช้ของคุณให้เป็น "เจ้าของ" ของไฟล์และไดเรกทอรี/var/www/htmlทั้งหมด ต่อไปเราตั้งค่าการอ่านและเขียนสิทธิ์บนโฟลเดอร์และอนุญาตให้คุณเข้าถึงโฟลเดอร์เพื่อเข้าไปยังโฟลเดอร์เหล่านั้น ( +xรายการในรายการไดเรกทอรี) จากนั้นเราตั้งค่าไฟล์ทั้งหมดให้มีสิทธิ์ในการอ่าน / เขียนสำหรับเจ้าของซึ่งเราเพิ่งตั้ง


(3) (เป็นทางเลือก)ตรวจสอบให้แน่ใจว่าทุกไฟล์ใหม่หลังจากสร้างด้วยwww-dataผู้ใช้ 'การเข้าถึง'

sudo find /var/www/html -type d -exec chmod g+s {} +

ชุดนี้บิต "set gid" สำหรับกลุ่มในไดเรกทอรี ไฟล์และโฟลเดอร์ที่สร้างขึ้นภายในไดเรกทอรีเหล่านี้จะมีwww-dataเป็นกลุ่มอนุญาตให้เข้าถึงเว็บเซิร์ฟเวอร์


(4) (ไม่บังคับ) การล้างข้อมูลความปลอดภัยขั้นสุดท้ายหากคุณไม่ต้องการให้ผู้ใช้รายอื่นเห็นข้อมูล

เราต้องการให้ผู้ใช้ของคุณเห็นไดเรกทอรีและไฟล์ เราต้องการเว็บเซิร์ฟเวอร์เพื่อทำเช่นนั้น เราอาจไม่ต้องการให้ผู้ใช้ระบบรายอื่น (ยกเว้นรูท) เห็นข้อมูล ดังนั้นอย่าให้สิทธิ์การเข้าถึงแก่พวกเขาและทำให้ผู้ใช้ของคุณและเว็บเซิร์ฟเวอร์สามารถดูข้อมูลได้เท่านั้น

sudo chmod -R o-rwx /var/www/html/

หมายเหตุ:คุณจะไม่ต้องเรียกใช้งานอีกครั้งในภายหลังหรือแก้ไขการอนุญาตสำหรับหมวดหมู่การอนุญาต 'อื่น ๆ ' ที่นี่ หากผู้ใช้ 'อื่น ๆ ' ไม่สามารถเข้าถึงได้/var/www/html/(พวกเขาไม่มี+xบิตที่จำเป็นใน/var/www/htmlการสำรวจโครงสร้าง+rไฟล์และโครงสร้างไดเรกทอรีและบิตเพื่ออ่านรายการไฟล์) จากนั้นสิทธิ์ในรายการภายใต้ไดเรกทอรีนั้นสำหรับผู้ใช้รายอื่น หรือกลุ่มไม่ได้มีความสำคัญมากเกินไป


มีวิธีการบุกรุกน้อยกว่านี้เล็กน้อยเช่นกันแม้ว่าจะไม่รับประกันว่าจะทำงานกับไฟล์ใหม่ทั้งหมดและไม่รับประกันว่าจะสามารถทำงานกับระบบไฟล์ทั้งหมดที่เกี่ยวข้องกับรายการควบคุมการเข้าถึงไฟล์ สิ่งนี้ช่วยให้คุณไม่ต้องเป็นเจ้าของไฟล์ด้วยwww-dataสิ่งต่าง ๆ แต่ให้สิทธิ์เจ้าของที่มีประสิทธิภาพสำหรับทุกเจตนาและวัตถุประสงค์แม้ว่าคุณจะไม่ได้เป็นเจ้าของไฟล์ส่วนตัว

โซลูชันนี้มีการบุกรุกน้อยกว่าเล็กน้อยและช่วยให้คุณมีไดเรกทอรีและไฟล์ทั้งหมดที่อยู่ภายในwww-data:www-dataหรือroot:www-dataยังให้สิทธิ์การเข้าถึงของคุณ มันใช้รายการควบคุมการเข้าถึงซึ่งช่วยให้คุณมีผู้ใช้หลายคนมีสิทธิ์โดยไม่ต้องตั้งค่าแต่ละกลุ่ม สิ่งนี้ยังช่วยให้ผู้ใช้ระบบrootหรือwww-dataไฟล์ของตัวเอง แต่ยังช่วยให้คุณเพิ่มสิทธิ์เพิ่มเติมเป็นกรณี ๆ ไปและปรับแต่งสิทธิ์สำหรับผู้ใช้บางคนเพื่อให้พวกเขาสามารถอ่านสิ่งต่าง ๆ แต่ไม่สามารถแก้ไขได้

สมมติว่าเรายังคงทำงานกับ/var/www/html/และเราไม่ต้องการให้ผู้ใช้อื่นที่ไม่ใช่เราและระบบ (และรากของหลักสูตร) ​​เพื่อดูข้อมูลของเราเราจะต้องทำสิ่งต่อไปนี้:

  1. www-dataให้เจ้าของกลับไปยังผู้ระบบเว็บเซิร์ฟเวอร์
sudo chown -R www-data: www-data / var / www / html
  1. ให้คุณอ่าน / เขียนไฟล์ซ้ำ ๆ ในขณะที่ให้ผู้ใช้รายอื่น (ยกเว้นwww-dataและrootแน่นอน) ไม่สามารถเข้าถึงไฟล์ได้
sudo find / var / www / html -type f -exec setfacl -mu: YOURUSERNAME: rw -m อื่น ๆ :: --- {} \;
  1. ให้ตัวเองอ่าน / เขียน / สำรวจซ้ำในไดเรกทอรีลบการเข้าถึงโฟลเดอร์สำหรับผู้ใช้รายอื่น (ไม่รวมwww-dataและroot) และตั้งค่านี้เป็น 'ค่าเริ่มต้น' ACL สำหรับไฟล์ใหม่ในไดเรกทอรี
sudo find / var / www / html -type d -exec setfacl -d -mu: ชื่อผู้ใช้ของคุณ: rwx -mo :: --- {} \;
  1. นอกจากนี้เรายังต้องตั้งค่าsetgidบิตสำหรับไดเรกทอรีทั้งหมดดังนั้นหากคุณสร้างไฟล์เว็บเซิร์ฟเวอร์ยังคงสามารถเข้าถึงได้เช่นเดียวกับการwww-dataอนุญาตกลุ่ม
sudo find / var / www / html -type d -exec chmod g + x {} \;

และตอนนี้คุณสามารถเข้าถึงไดเรกทอรีทั้งหมดและคุณไม่จำเป็นต้องเข้าถึงwww-dataสิ่งที่ช่วยเพราะเว็บเซิร์ฟเวอร์ยังคงสามารถสร้างไฟล์ได้ทุกที่ตามที่ต้องการ (เช่นส่วนหน้าของ PHP ที่มีไดเรกทอรีแคชของตนเองและเช่นนั้น จำเป็นต้องสร้างและเขียนเพื่อการทำงานที่เหมาะสม)

ข้อแม้เท่านั้น: หากคุณสร้างไฟล์ใหม่ด้วยตนเองคุณจะต้อง chown พวกเขาตามลำดับเพื่อให้ความเป็นเจ้าของกับเว็บเซิร์ฟเวอร์ นั่นเป็นเรื่องง่ายsudo chown www-data:www-data filenameและรายการควบคุมการเข้าถึงยังควรให้คุณมีสิทธิ์เจ้าของไฟล์อย่างมีประสิทธิภาพ

มีหลายกรณีที่ฉันต้องทำเช่นนี้เป็นระบบดูแลระบบสำหรับการเข้าถึงที่ไม่ได้มาตรฐานบางประเภทโดยไม่ต้องเปลี่ยนเจ้าของไฟล์ที่กำหนด วิธีนี้ใช้ได้ผล แต่มีอาการปวดหัวของตัวเองเนื่องจากบางระบบไฟล์ไม่รองรับรายการเข้าถึงไฟล์


2
@ AndréCarvalho +xสำหรับไฟล์จะให้สิทธิ์ในการปฏิบัติการและเราไม่ต้องการให้ไฟล์ PHP ถูกประมวลผลจำเป็นต้องใช้ผ่านบรรทัดคำสั่ง PHP หรือเป็นไฟล์ปฏิบัติการบนเซิร์ฟเวอร์ - เราต้องการให้มันประมวลผลโดย PHP parser ในเว็บเซิร์ฟเวอร์ (และเรา ไม่จำเป็นต้องใช้ไฟล์ PHP เพื่อ+xให้โปรแกรมแยกวิเคราะห์ PHP อ่านและประมวลผล) ไดเรกทอรีต้องการ+xเพื่ออนุญาตให้มีการแวะผ่านไดเรกทอรี - นั่นคือถ้าไดเรกทอรีไม่ได้+xและฉันไม่รูทฉันไม่สามารถเข้าไปในไดเรกทอรีซึ่งเป็นปัญหาที่คุณมีกับ Apache ที่ไม่ได้ทำงานร่วมกับ symlink ของคุณและบ้านของคุณ ไดเรกทอรี
Thomas Ward

1
@ AndréCarvalho www-dataเป็นกลุ่มระบบ - ไม่ใช่กลุ่มสำหรับผู้ใช้มาตรฐานที่จะเข้าร่วม
โทมัสวอร์ด

1
@JunaidQadirShekhanzai เป็นไปไม่ได้เนื่องจากการตั้งค่าของผู้คนแตกต่างอย่างมากจากสภาพแวดล้อมที่พวกเขาต้องการและปัจจัยอื่น ๆ เช่น 'ไฟล์เปลือก' จะเป็นไปไม่ได้ในการผลิตที่ได้รับว่ามีตัวเลือกส่วนประกอบ ฉันสามารถลองสร้างสคริปต์ Python ที่สามารถทำสิ่งนี้ได้ แต่เรายังคงพบกับข้อ จำกัด ของระบบงานทางเลือกเส้นทางที่แตกต่างและอื่น ๆ
Thomas Ward

1
@ T.Todua นั่นไม่ใช่สิ่งที่ฉันพูด ฉันบอกว่าคุณไม่ควรเรียกใช้ไซต์จาก (อ่าน: จากภายใน) ไดเรกทอรี "บ้าน" ของคุณ - นั่นคือคุณไม่ควรเรียกใช้สิ่งใดใน/home/USER/...เว็บเซิร์ฟเวอร์ คุณอ่านผิดและเข้าใจความหมายของคำที่ฉันใช้ผิดไป /var/www/*เป็นสถานที่ที่ค่อนข้าง 'ปลอดภัย' สำหรับการเรียกใช้เว็บไซต์เนื่องจากเป็นโฟลเดอร์ / พื้นที่เฉพาะสำหรับมัน อย่างไรก็ตาม/var/www/htmlไม่ปลอดภัยเพราะเขียนโดย webservers เกี่ยวกับการติดตั้งและนำไปสู่การปิดกั้นข้อมูลสำคัญ (ดังนั้นควรใช้/var/www/SUBDIRECTORYกับส่วนย่อยของแต่ละไซต์แทน)
Thomas Ward

1
ฉันได้ปรับถ้อยคำเพื่อความชัดเจน
โธมัสวอร์ด

2

แนวคิดทั้งหมดของการใช้ symlinks เพื่อแก้ไขปัญหาการอนุญาตนั้นมีข้อบกพร่องและไม่สามารถใช้งานได้ สิทธิ์ที่แสดงสำหรับ symlink นั้นส่วนใหญ่ไม่เกี่ยวข้องพวกเขาไม่สามารถใช้เพื่อหลีกเลี่ยงสิทธิ์ของไดเรกทอรี "ของจริง" สร้าง symlink จาก/var/www/html/moodleการไม่ได้หลีกเลี่ยงสิทธิ์สำหรับ/home/andre/www/moodle/ /home/andre/www/moodle/ทุกคนที่อยากจะทำในสิ่งที่สามารถทำเช่นนั้นถ้าเขาได้มีสิทธิ์ที่จำเป็นสำหรับ/var/www/html/moodle/home/andre/www/moodle/

การดำเนินการของคุณsudo chmod -R 775 moodle/จริงไม่ได้มีผลกระทบ แต่แตกต่างจากสิ่งที่คุณคิดว่ามันไม่ได้เปลี่ยนได้รับอนุญาตจาก symlink /home/andre/www/moodle/แต่เป้าหมาย

ข้อผิดพลาด 403 /home/andreคุณได้รับในเว็บเซิร์ฟเวอร์อาจเป็นเพราะเว็บเซิร์ฟเวอร์ของคุณไม่มีสิทธิ์ที่จำเป็นในการใส่ นี่ไม่ใช่ "ปัญหาเพิ่มเติม" แต่เนื่องจากปัญหาการอนุญาตเดียวกัน

ดังนั้นแทนที่จะใช้ symlinks คุณจะต้องหาสิทธิ์ที่อนุญาตให้คุณแก้ไขไฟล์และเว็บเซิร์ฟเวอร์เพื่อเข้าถึงไฟล์เหล่านั้น (หรือแก้ไขได้ สิทธิ์เหล่านั้นคืออะไรขึ้นอยู่กับกรณีการใช้งานของคุณ (แอพพลิเคชันและการกำหนดค่าเซิร์ฟเวอร์ของคุณ)

โดยทั่วไปฉันคิดว่ามันเป็นความคิดที่ดีที่คุณเป็นเจ้าของไฟล์และมีสิทธิ์ rw เว็บเซิร์ฟเวอร์มีการเข้าถึงเพื่ออ่านไฟล์ผ่านการอนุญาตของกลุ่มเท่านั้นและผู้ใช้อื่น ๆ ทุกคนไม่มีสิทธิ์เข้าถึงใด ๆ

ตัวอย่างสิทธิ์ (ซึ่งอาจไม่ทำงานสำหรับกรณีการใช้งานของคุณเนื่องจากข้อมูลขาดหายไป):

andre@fermat:/var/www/html$ ls -al moodle/
total 0
drwxr-x--- 2 andre www-data 60 mai  4 16:20 .
drwxr-xr-x 3 root  root     80 mai  4 16:20 ..
-rw-r----- 1 andre www-data  0 mai  4 16:20 index.html

คุณจะเห็นว่าไดเรกทอรีมีสิทธิ์ในการเข้าถึงเพียงพอสำหรับคุณในฐานะเจ้าของเพื่อป้อนและแก้ไขเนื้อหาของเว็บเซิร์ฟเวอร์ (ในกลุ่มwww-data) สามารถป้อนและอ่าน ไฟล์เองสามารถอ่านและเขียนได้สำหรับคุณ (เจ้าของ) และสามารถอ่านได้ที่เว็บเซิร์ฟเวอร์ (ในกลุ่มwww-data) ผู้ใช้อื่น ๆ ทั้งหมดไม่สามารถเข้าถึงสิ่งใด ๆ

อีกครั้งโปรดใช้สิ่งนี้เป็นตัวอย่างเท่านั้น ผู้ใช้ / กลุ่มที่แน่นอนของเว็บเซิร์ฟเวอร์ของคุณขึ้นอยู่กับการกำหนดค่าของคุณ และแอปพลิเคชันของคุณ (moodle) อาจต้องการการอนุญาตที่แตกต่างกันคุณต้องศึกษาเอกสารประกอบของมัน


เห็นด้วย แต่สิ่งนี้ไม่เป็นประโยชน์หากพวกเขาไม่ทราบวิธีการตั้งค่าการอนุญาตอย่างถูกต้องและพวกเขาจะพบปัญหาอื่นเช่นกัน
Thomas Ward

@ThomasW: จากนั้นคำถามเกี่ยวกับวิธีการตั้งค่าการอนุญาตอย่างถูกต้องควรเป็นคำถามใหม่รวมถึงข้อมูลที่จำเป็นเช่นการกำหนดค่าเว็บเซิร์ฟเวอร์วิธีที่ต้องการแก้ไขไฟล์และความต้องการของแอปพลิเคชัน
mastov

หรือเขียนเป็นคำตอบที่ถูกต้องซึ่งตอนนี้ฉันกำลังทำอยู่ คุณไม่ควรเรียกใช้สิ่งใดเลยที่ / home / USER / สำหรับเว็บไซต์มันมีการเข้าถึงข้อมูล 'ผู้ใช้' อื่น ๆ มากมายหากเว็บเซิร์ฟเวอร์ไม่ได้รับการแก้ไขหรือกำหนดค่าอย่างถูกต้อง
Thomas Ward

@mastov เข้าใจแล้ว คุณแก้คำถามมากมายที่ฉันมีกับคำอธิบายของคุณ
André Carvalho

2

คำตอบที่ยอดเยี่ยมโดยวอร์ดโทมัส https://askubuntu.com/a/767534/717860

คุณสามารถทำตามขั้นตอนที่แนะนำทั้งหมดได้ใน 3 คำสั่งแทนที่จะเป็น 8 คำสั่ง:

3 คำสั่ง:

sudo chown -R ubuntu:www-data /var/www
sudo find /var/www -type d -exec chmod 2750 {} \+
sudo find /var/www -type f -exec chmod 640 {} \+

ทำงานเช่นเดียวกับ 8 คำสั่งต่อไปนี้:

sudo chgrp -R www-data /var/www
sudo find /var/www -type d -exec chmod g+rx {} +
sudo find /var/www -type f -exec chmod g+r {} +
sudo chown -R ubuntu /var/www/
sudo find /var/www -type d -exec chmod u+rwx {} +
sudo find /var/www -type f -exec chmod u+rw {} +
sudo find /var/www -type d -exec chmod g+s {} +
sudo chmod -R o-rwx /var/www/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.