ฉันอัพเกรดเป็น 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