web-dev-qa-db-ja.com

sudoであっても/ usr / bin内にシンボリックリンクを作成できません

/ usr/binフォルダー内のバイナリをシンボリックリンクしようとすると、Operation not allowedエラーが表示されます。

 Sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted

須藤としても、このエラーが発生します。

72
egidra

/usr/binにシンボリックリンクできないのはなぜですか?

El Capitanの新しい システム整合性保護 機能は、OS Xのいくつかのコア部分(ほとんどの/usr/を含む)がルートによっても変更されないようにします。

パスに実行可能ファイルを追加するにはどうすればよいですか?

あなたがやっていることのようなローカルなカスタマイズは、代わりに/usr/localに属します。パス/usr/local/binはデフォルトでは存在しませんが、作成してカスタムバイナリ(およびシンボリックリンク)を入れることができます:

Sudo mkdir -p /usr/local/bin
Sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2

/usr/local/binはデフォルトでは存在しませんが、デフォルトのPATHにはisですので、作成するとすぐにコマンドを検索します。

SIPを無効にする

システム整合性保護を無効にすることもできますが、一般的には有効のままにして、より適切な場所でカスタマイズすることをお勧めします。 Apple St​​ack Exchangeの質問には、これに関する詳細があります: El-Captainのルートレス機能とは何ですか?

117
Gordon Davisson

Mac OS High SierraでSublime Text 3のシンボリックリンクを作成しました。

Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/

また、「/ usr/bin」にシンボリックリンクを作成しようとしていて、Operation Not Permittedが発生していました。

次に、「/ usr/local/bin」にシンボリックリンクを作成しましたが、エラーはありませんでした。シンボリックリンクは正常に機能します。 「/ usr/local/bin」がパスにあることを確認してください。

そのため、「/ usr/bin」へのアクセスが制限されているようです。

9
Vineet Sharma

システムを再起動->長押しcmd + R。ユーティリティメニューからターミナルを選択するには、次のコマンドを入力しますcsrutil disableターミナルを閉じてシステムを再起動します。

4
James