ฉันอัพเกรดเป็น El Capitan เมื่อวานและทุกอย่างดีจนกระทั่งเมื่อเร็ว ๆ นี้เมื่อฉันสังเกตเห็นว่าฉันไม่สามารถเขียนอะไร (ด้วย sudo ofc) บน / usr / bin ในขณะที่ฉันพยายามติดตั้ง phpbrew
สิ่งใดที่อาจทำให้เกิดปัญหานี้และวิธีแก้ไขปัญหา

ฉันอัพเกรดเป็น El Capitan เมื่อวานและทุกอย่างดีจนกระทั่งเมื่อเร็ว ๆ นี้เมื่อฉันสังเกตเห็นว่าฉันไม่สามารถเขียนอะไร (ด้วย sudo ofc) บน / usr / bin ในขณะที่ฉันพยายามติดตั้ง phpbrew
สิ่งใดที่อาจทำให้เกิดปัญหานี้และวิธีแก้ไขปัญหา

คำตอบ:
ตั้งแต่ OSX 10.11 แอปเปิ้ลเสริมระบบรักษาความปลอดภัย การป้องกันความสมบูรณ์ของระบบที่เรียกว่าApple ล็อคลง:
/System
/sbin
/usr (with the exception of /usr/local subdirectory)
หากต้องการปิดใช้งานคุณลักษณะด้านความปลอดภัยนี้คุณจะต้องบูตคอมพิวเตอร์ใหม่และถือไว้CMD+Rเมื่อเริ่มต้นเพื่อเข้าสู่โหมดการกู้คืน OS X
แล้วก็ OS X Utilities > Terminal
พิมพ์คำสั่ง csrutil disable; reboot
คอมพิวเตอร์ของคุณจะรีสตาร์ท คุณจะเห็นข้อความยืนยันเกี่ยวกับการยกเลิกการใช้งาน
เพื่อตรวจสอบสถานะของประเภท CRS csrutil status
/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
sudoลองกับ
csrutil enable(ในโหมดการกู้คืน)
ในฐานะที่เป็นที่กล่าวถึงโดย Ragnarที่ไดเรกทอรีลงล็อคโดยระบบมีข้อยกเว้นของ/usr จากนั้นหากสถานการณ์ของคุณช่วยให้ผมอยากแนะนำให้เพิ่มการเชื่อมโยงสัญลักษณ์/usr/local /usr/local/binหากคุณไม่มีข้อกำหนดที่เข้มงวดในการใช้/usr/binนั่นเป็นวิธีหนึ่งในการแก้ไขข้อผิดพลาด "ไม่อนุญาตการดำเนินการ"
หนึ่งสามารถตรวจสอบว่าไฟล์หรือไดเรกทอรีเฉพาะถูก จำกัด โดย System Integrity Protection (SIP) / Rootless ของ OSX โดยการแสดงรายการไฟล์ธงโดยใช้-Oตัวเลือกในการ ls (เช่นเพื่อดูว่าไดเรกทอรีใดใน / ถูก จำกัด ):
ls -Ol /
ไดเร็กทอรีหรือไฟล์ที่ถูกควบคุมโดย SIP จะแสดงเป็น 'ถูก จำกัด '
มีรายละเอียดทั้งหมดในคำตอบสำหรับคำถามนี้เกี่ยวกับ SIP / rootless