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


101

/ usr / binフォルダーにあるバイナリをシンボリックリンクしようとすると、操作が許可されていませんというエラーが表示されます。

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

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


1.OS 2.Distribution 3.ファイルシステムは何ですか?
Rany Albeg Wein

Mac OSX El Capitan 10.11.4
egidra

1
次を試してみましたか:stackoverflow.com/questions/32659348/…
Rany Albeg Wein

回答:


156

にシンボリックリンクできないのはなぜ/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には、そうとすぐにそれを作成するように、コマンドで検索されます。

SIPを無効にする

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


16

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

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

「/ usr / bin」にシンボリックリンクを作成しようとしていて、操作が許可されていませんでした。

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

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


7

システムを再起動します-> cmd + Rを長押しします。ユーティリティメニューからターミナルを選択し、次のコマンドを入力します。csrutildisable terminal close close and restart system。


9
これにより、システムの整合性保護が無効になります。おそらく、代わりに別のより安全なソリューションを見つけることが最善です。
MattSidor 2018年

9
個人的には、これが正しい解決策だと思います。OSがこのディレクトリまたは任意のディレクトリのシンボリックリンクをブロックする理由はないようsudoです。
rjhilgefort

0
  1. Create a symbolic link to psql in usr/bin (for mac only)
         command: sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/psql /usr/bin/psql 

権限の問題が原因でシンボリックリンクを作成できない場合は、「csrutil」が原因です。csrutilを無効にした後、シンボリックリンクを作成できます。CSRUtillを無効にするには、次の手順に従います。

Macを再起動します。OS Xが起動する前に、Command-Rを押したまま、Appleアイコンと進行状況バーが表示されるまで押し続けます。リリース。これにより、リカバリが開始されます。ユーティリティ(上部バー)メニューから[ターミナル]を選択します。プロンプトで次のように正確に入力し、Returnキーを押します。csrutil disable Terminalは、SIPが無効にされたことを示すメッセージを表示するはずです。メニューから[再起動]を選択します。


-3

sudo su最初に実行してから、ルートレベルでコマンドを実行してください。


2
これはOPの問題を解決しません。この問題は、最新のMacOSシステムのシステム整合性保護に関係しています。
cgseller
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.