ในเซิร์ฟเวอร์ระยะไกลฉันมีการตั้งค่า hook post-receive เพื่อทำการเช็คเอาต์ git ของที่เก็บของฉัน:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
แต่เมื่อฉันกดจากเครื่องในพื้นที่ของฉันไปยังที่เก็บ git ในเซิร์ฟเวอร์ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
remote: error: unable to unlink old '<file>' (Permission denied)
ปรากฏขึ้นหลายครั้งข้อความแสดงข้อผิดพลาดเดียวสำหรับเกือบทุกไฟล์
อย่างไรก็ตามฉันมีไฟล์ README.txt ที่ฉันสามารถเปลี่ยนได้โดยใช้ git นี่คือการอนุญาต:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
แต่ไฟล์อื่น ๆ ที่มีเจ้าของเดียวกันและสิทธิ์เหมือนกันให้ข้อผิดพลาดนั้นกับฉัน
ในที่เก็บภายในเครื่องอื่นสำหรับเว็บไซต์อื่นฉันมีไฟล์ที่มีชื่อผู้ใช้เครื่องในท้องถิ่นเป็นเจ้าของและเมื่อฉันกดไปที่เซิร์ฟเวอร์ระยะไกลจะเคารพเจ้าของเซิร์ฟเวอร์ระยะไกลของไฟล์และใช้งานได้อย่างมีเสน่ห์
เห็นได้ชัดว่าดูเหมือนข้อผิดพลาดเกี่ยวกับการอนุญาต แต่ฉันไม่สามารถหาวิธีแก้ไขได้คำแนะนำใด ๆ
sudo chmod -R g+w
โฟลเดอร์ที่มีความผิด