SSH เปลี่ยนความเป็นเจ้าของ public_html

ความเป็นเจ้าของเริ่มต้นสำหรับ public_html คือ myusername:nobody

drwxr-xr--. 18 myusername nobody       4096 Jun  1 16:06 public_html/

ฉันเปลี่ยนสิ่งนี้เป็น myusername:myusername เนื่องจากฉันต้องเข้าถึงไฟล์ภายใน public_html โดยใช้คำสั่งต่อไปนี้

# chown myusername:myusername public_html

มันใช้งานได้และเปลี่ยนความเป็นเจ้าของ

ตอนนี้ฉันไม่สามารถเปลี่ยนความเป็นเจ้าของกลับเป็น myusername:nobody ได้ ฉันใช้คำสั่งนี้

chown livegiftcard:nobody public_html

และมันทำให้ฉันมีข้อผิดพลาด

cown: เปลี่ยนความเป็นเจ้าของ âpublic_htmlâ: ไม่อนุญาตให้ดำเนินการ

ฉันได้ทดสอบสิ่งนี้ด้วย sudo และ chgrp ด้วย แต่ก็ไม่มีโชค

นอกจากนี้ฉันยังไม่สามารถเรียกใช้เว็บไซต์ของฉันได้ เบราว์เซอร์ทำให้ฉันมีข้อผิดพลาดดังต่อไปนี้

ต้องห้าม

คุณไม่ได้รับอนุญาตให้เข้าถึง / บนเซิร์ฟเวอร์นี้ เซิร์ฟเวอร์ไม่สามารถอ่านไฟล์ htaccess ได้ ปฏิเสธการเข้าถึงเพื่อความปลอดภัย

นอกจากนี้ ยังพบข้อผิดพลาด 403 Forbidden ขณะพยายามใช้ ErrorDocument เพื่อจัดการคำขอ


person saiid    schedule 02.06.2016    source แหล่งที่มา


คำตอบ (1)


ปัญหา: apache/nginx มีผู้ใช้ที่ต้องการอ่านไฟล์ใน Docroot ผู้ใช้และกลุ่มเริ่มต้นคือ: www-data:www-data ฉันไม่ใช่ผู้ใช้หากสิ่งนี้ถูกต้องในกรณีของคุณ

ตอนนี้ไฟล์เป็นของ myusername:myusername และผู้ใช้ apache/nginx อาจไม่อยู่ในกลุ่ม "myusername" ดังนั้นหากคุณมีความรู้เกี่ยวกับระบบการอนุญาตของ linux ผู้ใช้เว็บเซิร์ฟเวอร์จะมีสิทธิ์ที่ทุกคนมีเท่านั้น (คอลัมน์ที่สาม) เมื่อตั้งค่ากลุ่มเป็นไม่มีเลย กลุ่มใดๆ ก็ไม่ได้เป็นเจ้าของไฟล์ และผู้ใช้ทุกคนสามารถดำเนินการภายใต้สิทธิ์ของกลุ่มได้ ในกรณีของคุณ ฉันเดาว่ากลุ่มสามารถอ่านไฟล์ทั้งหมดได้ แต่ไฟล์อื่นๆ ไม่สามารถทำได้

สิ่งที่คุณสามารถทำได้: ให้สิทธิ์แก่ผู้อื่นในการอ่านไฟล์ด้วย

chmod -R o+r public_html

ตอนนี้ทุกคน รวมถึงผู้ใช้เว็บเซิร์ฟเวอร์สามารถอ่านไฟล์ได้ และคุณจะไม่ได้รับข้อผิดพลาด 403 -R เป็นแบบเรียกซ้ำ ดังนั้นทุกไฟล์และไดเร็กทอรีภายใต้ public_html จะได้รับแฟล็กที่อ่านได้เช่นกัน

อีกประการหนึ่งคือการเพิ่มผู้ใช้เว็บเซิร์ฟเวอร์ในกลุ่ม "myusername" เพื่อให้ผู้ใช้เว็บเซิร์ฟเวอร์สามารถใช้สิทธิ์ของกลุ่มได้เช่นกัน

ความเป็นไปได้ประการที่สามและสุดท้ายที่อยู่ในใจของฉันคือเปลี่ยนกลุ่มเป็น "nogroup" แทนที่จะเป็น "nobody" เพราะไม่มีใครเป็นผู้ใช้และไม่มีการจัดกลุ่มกลุ่ม

person Dentastic    schedule 02.06.2016