Sudo tidak dapat membuat file di / usr / bin di El Capitan


14

Saya upgrade ke El Capitan kemarin dan semuanya baik-baik saja sampai baru-baru ini ketika saya perhatikan saya tidak bisa menulis apa pun (dengan sudo ofc) di / usr / bin ketika saya mencoba menginstal phpbrew.

Apa yang menyebabkan ini dan bagaimana cara memecahkannya?

masukkan deskripsi gambar di sini


OS X El Capitan tidak dapat di-root. Fitur ini dapat dinonaktifkan dari partisi pemulihan.
fd0

Jawaban:


17

Sejak OSX 10.11, Apple memperkuat sistem keamanan. Disebut Perlindungan Integritas Sistem , Apple mengunci:

/System
/sbin
/usr (with the exception of /usr/local subdirectory)

Untuk menonaktifkan fitur keamanan ini, Anda harus mem-boot ulang komputer Anda dan menahannya CMD+Rsaat mulai mem-boot ke dalam Mode Pemulihan OS X.

Kemudian OS X Utilities > Terminal

Ketikkan perintah csrutil disable; reboot

Komputer Anda akan restart. Anda akan melihat pesan konfirmasi tentang penonaktifan.

Untuk memverifikasi status jenis CRS csrutil status


1
Saya dinonaktifkan dan masih tidak memungkinkan saya untuk melakukan apa pun:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
Roberto

Coba dengan sudo.
Ragnar

Dalam kebanyakan kasus, lebih baik untuk menginstal penyesuaian lokal ke / usr / local (mis. / Usr / local / bin daripada / bin atau / usr / bin). Untuk itulah, dan ini sudah lama terjadi. Jika memungkinkan, saya sarankan mengikuti praktik terbaik ini daripada menonaktifkan SIP. Jika Anda benar-benar perlu melakukan perubahan di lokasi terbatas, sebaiknya nonaktifkan SIP, lakukan perubahan, lalu segera aktifkan kembali SIP dengan csrutil enable(dalam mode Pemulihan).
Gordon Davisson

3

Seperti yang disebutkan oleh Ragnar , /usrdirektori dikunci oleh sistem, dengan pengecualian /usr/local. Kemudian, jika skenario Anda memungkinkan, saya sarankan menambahkan tautan simbolis ke /usr/local/bin. Jika Anda tidak memiliki persyaratan ketat untuk menggunakan /usr/bin, itu salah satu cara untuk mengatasi kesalahan "Operasi tidak diizinkan".


2

Seseorang dapat memverifikasi jika file atau direktori tertentu dibatasi oleh OSX System Integrity Protection (SIP) / Rootless dengan mendaftarkan flag file menggunakan -Oopsi ke ls (misalnya untuk melihat direktori mana di / dibatasi):

ls -Ol /

Direktori atau file yang dikendalikan oleh SIP ditampilkan sebagai 'dibatasi'.

Ada detail lengkap dalam jawaban untuk pertanyaan ini tentang SIP / tidak menentu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.