Sudo ไม่สามารถสร้างไฟล์ใน / usr / bin ใน El Capitan


14

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

สิ่งใดที่อาจทำให้เกิดปัญหานี้และวิธีแก้ไขปัญหา

ป้อนคำอธิบายรูปภาพที่นี่


OS X El Capitan ไร้ค่า คุณลักษณะนี้สามารถปิดการใช้งานจากพาร์ติชันการกู้คืน
fd0

คำตอบ:


17

ตั้งแต่ 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


1
ฉันปิดการใช้งานและมันก็ไม่อนุญาตให้ฉันทำอะไร:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
Roberto

sudoลองกับ
Ragnar

ในกรณีส่วนใหญ่จะเป็นการดีกว่าที่จะติดตั้งการปรับแต่งท้องถิ่นลงใน / usr / local (เช่น / usr / local / bin มากกว่า / bin หรือ / usr / bin) นั่นคือสิ่งที่มันมีไว้และนี่เป็นกรณีมานาน หากเป็นไปได้ฉันขอแนะนำให้ทำตามแนวทางปฏิบัติที่ดีที่สุดนี้แทนที่จะปิดใช้งาน SIP หากคุณจำเป็นต้องทำการเปลี่ยนแปลงในสถานที่ที่ จำกัด จริงๆควรปิดการใช้งาน SIP ทำการเปลี่ยนแปลงแล้วเปิดใช้งาน SIP อีกครั้งทันทีด้วยcsrutil enable(ในโหมดการกู้คืน)
Gordon Davisson

3

ในฐานะที่เป็นที่กล่าวถึงโดย Ragnarที่ไดเรกทอรีลงล็อคโดยระบบมีข้อยกเว้นของ/usr จากนั้นหากสถานการณ์ของคุณช่วยให้ผมอยากแนะนำให้เพิ่มการเชื่อมโยงสัญลักษณ์/usr/local /usr/local/binหากคุณไม่มีข้อกำหนดที่เข้มงวดในการใช้/usr/binนั่นเป็นวิธีหนึ่งในการแก้ไขข้อผิดพลาด "ไม่อนุญาตการดำเนินการ"


2

หนึ่งสามารถตรวจสอบว่าไฟล์หรือไดเรกทอรีเฉพาะถูก จำกัด โดย System Integrity Protection (SIP) / Rootless ของ OSX โดยการแสดงรายการไฟล์ธงโดยใช้-Oตัวเลือกในการ ls (เช่นเพื่อดูว่าไดเรกทอรีใดใน / ถูก จำกัด ):

ls -Ol /

ไดเร็กทอรีหรือไฟล์ที่ถูกควบคุมโดย SIP จะแสดงเป็น 'ถูก จำกัด '

มีรายละเอียดทั้งหมดในคำตอบสำหรับคำถามนี้เกี่ยวกับ SIP / rootless

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.