Προσπαθώ να μετακινήσω κάτι στο /usr/bin στο OS X El Capitan. Έχω απενεργοποιήσει το rootless χρησιμοποιώντας τις ακόλουθες εντολές: sudo nvram boot-args="rootless=0"; sudo reboot
, αλλά συνεχίζω να λαμβάνω το ίδιο σφάλμα:
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
Nvm. Για όποιον άλλον έχει αυτό το πρόβλημα πρέπει να επανεκκινήσετε το mac σας και να πατήσετε ⌘+R κατά την εκκίνηση. Στη συνέχεια, πηγαίνετε στο Προγράμματα > Τερματικό και πληκτρολογήστε τις ακόλουθες εντολές:
csrutil disable
reboot
Αυτό είναι αποτέλεσμα της προστασίας ακεραιότητας συστήματος. Περισσότερες πληροφορίες εδώ.
EDIT
Αν ξέρετε τι κάνετε και έχετε συνηθίσει να τρέχετε Linux, θα πρέπει να χρησιμοποιήσετε την παραπάνω λύση, καθώς πολλοί από τους περιορισμούς του SIP είναι σκέτος μπελάς.
Ωστόσο, αν είστε tinkerer/noob/"poweruser" και δεν ξέρετε τι κάνετε, αυτό μπορεί να είναι πολύ επικίνδυνο και είναι καλύτερα να χρησιμοποιήσετε την παρακάτω απάντηση.
Η σωστή λύση είναι να αντιγράψετε ή να εγκαταστήσετε στο /usr/local/bin
και όχι στο /usr/bin
.Αυτό οφείλεται στην Προστασία Ακεραιότητας Συστήματος (SIP). Το SIP καθιστά το /usr/bin
μόνο για ανάγνωση, αλλά αφήνει το /usr/local
για ανάγνωση-γραφή.
Το SIP δεν πρέπει να απενεργοποιείται όπως αναφέρεται στην παραπάνω απάντηση, επειδή προσθέτει ένα ακόμη επίπεδο προστασίας από την απόκτηση πρόσβασης root από κακόβουλο λογισμικό. Εδώ υπάρχει μια πλήρης εξήγηση του τι κάνει το SIP και γιατί είναι χρήσιμο.
Όπως προτείνεται σε αυτή την απάντηση δεν πρέπει να απενεργοποιήσετε το SIP (rootless mode) "Δεν συνιστάται η απενεργοποίηση του rootless mode! Η καλύτερη πρακτική είναι να εγκαθιστάτε προσαρμοσμένα πράγματα μόνο στο "/usr/local"".
Αν θέλετε να πάρετε τον έλεγχο του /usr/bin/
Θα χρειαστεί να επανεκκινήσετε το σύστημά σας:
Αμέσως μετά τον ήχο εκκίνησης, κρατήστε πατημένο το Command-R για να εκκινήσετε στο σύστημα ανάκτησης
Κάντε κλικ στο μενού Utilities και επιλέξτε Terminal
Πληκτρολογήστε csrutil disable και πατήστε return
Κάντε κλικ στο μενού και επιλέξτε Επανεκκίνηση
Μόλις δεσμεύσετε τις αλλαγές σας, βεβαιωθείτε ότι έχετε ενεργοποιήσει ξανά το SIP! Κάνει πολλά για την προστασία του συστήματός σας. (Τα ίδια βήματα με τα παραπάνω, εκτός από το να πληκτρολογήσετε: csrutil enable)