ฉันจะตั้งค่าความเป็นเจ้าของกลุ่มเริ่มต้นสำหรับไฟล์ในไดเรกทอรีได้อย่างไร


20

ฉันกำลังใช้งานเว็บแคม CakePHP บน Linode LAMP ฉันพบว่าไฟล์ชั่วคราวของฉันถูกสร้างขึ้นด้วยการเป็นเจ้าของ root: root แต่แอพพลิเคชั่นนี้ทำงานโดยได้รับอนุญาตจาก Apache (www-data) สิ่งนี้ทำให้คำเตือนเมื่อใดก็ตามที่มีไฟล์ใหม่ที่สร้างขึ้นเนื่องจากไม่สามารถเขียนได้สำหรับผู้ใช้ www-data

ฉันจะเปลี่ยนความเป็นเจ้าของเริ่มต้นเป็น www-data ในไฟล์ใหม่ที่สร้างในโฟลเดอร์ temp ได้อย่างไร

ขอบคุณสำหรับความช่วยเหลือของคุณ!

คำตอบ:


23

ในการกำหนดความเป็นเจ้าของกลุ่มโดยใช้ข้อมูล www โดยไม่คำนึงถึง uid / gid ของกระบวนการที่สร้างไฟล์คุณจะต้องตั้งค่าบิต setgid ในไดเรกทอรี

    sudo chown :www-data <dir>
    sudo chmod g+s <dir>

โปรดทราบว่าคุณต้องทำให้ไดเรกทอรีสามารถเขียนได้โดยกระบวนการใด ๆ ที่จะสร้างไฟล์ หากเป็นใคร แต่เป็นรูทคุณอาจต้องchmod o+rwxทำงานให้ถูกต้อง


สิ่งที่เกี่ยวกับไดเรกทอรีย่อย?
mcont

การต่อท้ายแฟล็ก -R เพื่อ chown และ chmod ทำให้คำสั่งนั้นเรียกซ้ำ ดังนั้นคำสั่งด้านล่างจะกำหนดความเป็นเจ้าของกลุ่มเริ่มต้นให้กับ <dir> เช่นเดียวกับไดเรกทอรีย่อยทั้งหมดของ <dir>: sudo chown -R :www-data <dir>และsudo chmod -R g+s <dir>
Josh Wieder
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.