Saya mencoba memindahkan sesuatu ke / usr / bin pada OS X El Capitan. Saya telah menonaktifkan rootless menggunakan perintah berikut:, sudo nvram boot-args="rootless=0"; sudo reboot
tapi saya tetap mendapatkan kesalahan yang sama:
MacBook-Air:~ Mark$ sudo cp class-dump /usr/bin
Password:
cp: /usr/bin/class-dump: Operation not permitted
MacBook-Air:~ Mark$ sudo mv class-dump /usr/bin
mv: rename class-dump to /usr/bin/class-dump: Operation not permitted
macos
osx-elcapitan
Mark Bourke
sumber
sumber
Jawaban:
Nvm. Untuk orang lain yang mengalami masalah ini, Anda perlu me-reboot mac Anda dan tekan ⌘ + R saat booting. Kemudian masuk ke Utilities> Terminal dan ketik perintah berikut:
Ini adalah hasil dari Perlindungan Integritas Sistem. Info lebih lanjut di sini .
EDIT
Jika Anda tahu apa yang Anda lakukan dan terbiasa menjalankan Linux, Anda harus menggunakan solusi di atas karena banyak dari pembatasan SIP sangat menyebalkan.
Namun, jika Anda adalah orang yang suka mengotak - atik / noob / "poweruser" dan tidak tahu apa yang Anda lakukan, ini bisa sangat berbahaya dan Anda lebih baik menggunakan jawaban di bawah ini .
sumber
csrutil enable; reboot
. Sayangnya, perintah ini tidak berfungsi dalam mode normal.Solusi yang benar adalah menyalin atau menginstal untuk
/usr/local/bin
tidak/usr/bin
. Ini karena Sistem Perlindungan Integritas (SIP) . SIP membuat/usr/bin
read-only tetapi tetap/usr/local
sebagai read-write.SIP tidak boleh dinonaktifkan seperti yang dinyatakan dalam jawaban di atas karena ia menambahkan lapisan perlindungan lain terhadap malware yang mendapatkan akses root. Berikut ini adalah penjelasan lengkap tentang apa yang SIP lakukan dan mengapa ini berguna.
Seperti yang disarankan dalam jawaban ini, seseorang seharusnya tidak menonaktifkan SIP (mode tanpa akar) "Tidak disarankan untuk menonaktifkan mode tanpa akar! Praktik terbaik adalah menginstal barang-barang khusus ke" / usr / local "saja."
sumber
java
untuk/usr/local/bin/java
di alias bashrc saya, setelah saya membuat tautan yang sesuai di folder itu seperti yang dijawab oleh jawaban ini.rm
apa pun/usr/bin/
? Saya mengerti SIP memiliki tujuannya, tetapi ingin menghapus satu executable tertentu./usr/local/bin
di jalur saya dan openssl 1.0.2n disinkronkan dengan benar/usr/local/bin/openssl
tetapi setiap kali saya melakukannyawhich openssl
masih menunjukkan versi/usr/bin/openssl
mana yang lebih lamaOpenSSL 0.9.8zh 14 Jan 2016
. Bagaimana saya membuat sistem saya lebih suka yang/usr/local/bin/openssl
satu daripada yang lain?Jika Anda ingin mengambil kendali
/usr/bin/
Anda perlu me-reboot sistem Anda:
Tepat setelah suara boot, tahan Command-R untuk boot ke dalam Sistem Pemulihan
Klik menu Utilities dan pilih Terminal
Ketik csrutil nonaktifkan dan tekan kembali
Klik menu dan pilih Restart
Setelah Anda melakukan perubahan, pastikan untuk mengaktifkan kembali SIP! Itu banyak melindungi sistem Anda. (Langkah yang sama seperti di atas kecuali ketik: csrutil aktifkan)
sumber
Jika setelah memanggil "csrutil dinonaktifkan" masih perintah Anda tidak berfungsi, coba dengan "sudo" di terminal, misalnya:
Dan itu seharusnya berhasil.
sumber