สิทธิ์เริ่มต้นสำหรับ / var / www


36

ฉันพยายามเปิดไฟล์และเขียนมันด้วย PHP ที่/var/wwwโฟลเดอร์ แต่มันไม่ทำงานดังนั้นฉันจึงทำ

sudo chmod 777 /var/www

ตอนนี้ฉันต้องการตั้งค่าการอนุญาตสำหรับ/var/wwwการเริ่มต้น
สิทธิ์เริ่มต้น/var/wwwคืออะไร


ฉันไม่ได้เป็นสมาชิกของเซิร์ฟเวอร์ผิดพลาดดังนั้นฉันไม่สามารถแสดงความคิดเห็นหรือตอบคำถามได้ แต่โพสต์นี้ตอกย้ำมันจริงๆ: serverfault.com/questions/357108/…
Donato

คำตอบ:



43

ได้รับอนุญาตเริ่มต้นสำหรับ/var/wwwตัวเองเป็นมาตรฐานสวยที่หนึ่ง: เจ้าของและพอควรroot:root755

สำหรับสิ่งที่อยู่ข้างใน /var/wwwนั้นเป็นหนึ่งในไดเรกทอรีที่หายากที่คุณมีสิทธิ์ในการตัดสินใจด้วยตัวคุณเองว่าจะใส่อะไรลงไป แต่สิ่งที่สมเหตุสมผลที่สุดคือ:

  • ไฟล์ส่วนใหญ่ควรเขียนได้ไม่ว่าผู้ใช้หรือกลุ่มใดจะเขียนให้มากที่สุด คุณสามารถตั้งค่าให้พวกเขาเป็นเจ้าของโดยบัญชีผู้ใช้ของคุณ หรือตั้งค่ากลุ่มที่กำหนดเองสำหรับนักพัฒนาของคุณ หรือหากไฟล์จะถูกแก้ไขน้อยและคุณต้องการความปลอดภัยที่ดีคุณสามารถไปกับroot:rootและเพียงแค่ sudo ในโอกาสที่หายากพวกเขาจะถูกแก้ไข

  • ไฟล์ส่วนใหญ่ไม่ควรเขียนได้ทั่วโลก ดังนั้น644สำหรับไฟล์และ755ไดเรกทอรีที่เหมาะสม (หรือ664และ775ถ้าคุณต้องการที่จะให้เข้าถึงกลุ่มเขียน)

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


2
โหวตขึ้นเป็นคำตอบข้อสรุปที่นี่มากที่สุด
Chris

2
ตอนนี้เป็นคำตอบที่ดีจริงๆ :)
Banago

เพื่อปรับปรุงคำตอบให้พิจารณาเพิ่มคำสั่งการตั้งค่าที่เหมาะสม parmissions
อับราฮัม Murciano Benzadon

มีฟังก์ชั่นวนซ้ำที่สามารถเปลี่ยนโฟลเดอร์ทั้งหมดเป็น 755 และไฟล์เป็น 644 ใน var / www หรือไม่?
Matthew Semik

Yep: stackoverflow.com/questions/18817744/… (คำตอบที่สองนั้นสง่างามยิ่งกว่า IMO ที่ยอมรับ)
thomasrutter

9

ตรวจสอบให้แน่ใจว่ากลุ่มคือ www-data บน '/ var / www'

sudo chgrp www-data /var/www

ทำให้เขียนได้

sudo chmod 775 /var/www

ตั้งค่า id กลุ่มสำหรับโฟลเดอร์ย่อย

sudo chmod g+s /var/www

เพิ่มชื่อผู้ใช้ของคุณไปยังกลุ่ม

sudo useradd -G www-data [USERNAME]
OR
usermod -a -G www-data [USERNAME]

ให้ตัวเองเป็นเจ้าของ

sudo chown [USERNAME] /var/www/

9
นี่ไม่ใช่สิทธิ์เริ่มต้นสำหรับ / var / www และเป็นความคิดที่ดีมากที่ควรคำนึงถึงความปลอดภัยเพื่อให้รูทเว็บทั้งหมดสามารถเขียนได้ด้วยข้อมูล www ทำสิ่งนี้เฉพาะเมื่อสคริปต์ของเว็บต้องการการเข้าถึงเพื่อเขียนไฟล์บางไฟล์และทำได้เฉพาะกับไฟล์เหล่านั้นเท่านั้นไม่ใช่ไปที่เว็บรูททั้งหมด และ OP ไม่ได้บอกว่าเขาต้องการทำเช่นนี้ดังนั้นนี่ไม่ควรเป็นคำแนะนำเลย
thomasrutter

3
นอกจากนี้ยังเป็นความคิดที่ดีที่จะเพิ่มตัวคุณเองลงในกลุ่ม www-data และปฏิบัติต่อกลุ่มนั้นในลักษณะนั้น คุณอ่านเพื่อทำสิ่งนี้ที่ไหน? มันเป็นคำแนะนำที่ไม่ดีโดยเฉพาะอย่างยิ่ง สร้างกลุ่มของคุณเองเมื่อคุณต้องการให้กลุ่มเข้าถึงบางสิ่ง: อย่าใช้กลุ่มที่ไม่ได้รับสิทธิพิเศษซึ่งมีไว้สำหรับการใช้ภายในโดย daemons
thomasrutter

1
@neon_overload สิ่งที่คุณแนะนำ
aWebDeveloper

1
อะไรคือสิ่งที่คุณแนะนำ @neon_overload
Banago

1
@Banago personnaly ฉันแนะนำ +1 :)
kamil

-2
sudo adduser $USER www-data
sudo chown root:root /var/www


sudo chown -R $USER:www-data /var/www/*
sudo chmod -R 755 /var/www

4
อาจเป็นอันตรายต่อการใช้-Rธงที่นี่ทั้งนี้ขึ้นอยู่กับเนื้อหา เนื่องจาก OP ไม่ได้ใช้การ-Rตั้งค่าสถานะเราไม่ควรแนะนำให้แก้ไขการอนุญาตที่ไม่ถูกต้องที่พวกเขาสร้างขึ้น -Rธงเป็นประโยชน์ไม่ค่อย!
Zanna
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.