web-dev-qa-db-ja.com

操作が許可されていません - El Capitan(rootless disabled)

私はOS X El Capitanで何かを /usr/bin に移動しようとしています。 Sudo nvram boot-args="rootless=0"; Sudo rebootコマンドを使用してrootlessを無効にしましたが、同じエラーが表示され続けます。

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
214
Mark Bourke

Nvm。この問題を抱えている人は、Macを再起動し、起動時に⌘+ Rを押す必要があります。次に、Utilities> Terminalに進み、次のコマンドを入力します。

csrutil disable
reboot 

これは、システム整合性保護の結果です。詳細 こちら

編集

Linuxの実行に慣れており、慣れている場合は、上記のソリューションを使用する必要があります。多くのSIP制限が完全な痛みであるためです。お尻に。

ただし、tinkerer/noob/"poweruser"であり、何をしているかわからない場合、これは非常に危険である可能性があり、 以下の答え

346
Mark Bourke

正しい解決策は/usr/local/binnot/usr/binにコピーまたはインストールすることですこれは System Integrity Protection(SIP) のためです。 SIPは/usr/binを読み取り専用にしますが、/usr/localを読み書き可能にします。

_ sip _ は、上記の回答で述べたように無効にしないでください。ルートアクセスを取得するマルウェアに対して別の保護層が追加されるためです。 ここ は、SIPが何をするのか、そしてなぜそれが有用なのかについての完全な説明です。

この回答 で示唆されているように、SIP(rootless mode)を無効にすべきではありません "rootless modeを無効にすることはお勧めできません! usr/localは "only"です。

214
hariszaman

/usr/bin/を管理したい場合

システムを再起動する必要があります。

起動音の直後に、Command-Rを押しながらリカバリシステムを起動します。

[ユーティリティ]メニューをクリックして[ターミナル]を選択します。

Csrutil disableと入力してReturnキーを押します。

メニューをクリックして、「再起動」を選択します。

変更をコミットしたら、必ずSIPを再度有効にしてください。あなたのシステムを保護することは大いに役立ちます。 (type:csrutil enable以外は上記と同じ手順)

13
Elliot Yap

"csrutil disabled"の後もまだコマンドが機能しない場合は、ターミナルで "Sudo"を試してください。例えば:

Sudo mv geckodriver usr/local/bin

そしてそれはうまくいくはずです。

0
Nicolas