SudoがEl Capitanの/ usr / binにファイルを作成できない


13

昨日、El Capitanにアップグレードしましたが、phpbrewをインストールしようとして/ usr / binに(sudo ofcで)何も書き込めないことに気付いた最近まで、すべてが順調でした。

これの原因とトラブルシューティング方法は何ですか?

ここに画像の説明を入力してください


OS X El Capitanはルートレスです。この機能は、リカバリパーティションから無効にできます。
fd0

回答:


16

OSX 10.11以降、Appleはセキュリティシステムを強化しました。System Integrity Protectionと呼ばれる、Appleはロックダウンします:

/System
/sbin
/usr (with the exception of /usr/local subdirectory)

このセキュリティ機能を無効にするには、コンピューターを再起動し、起動CMD+R時にホールドしてOS Xリカバリモードで起動する必要があります。

それから OS X Utilities > Terminal

コマンドを入力します csrutil disable; reboot

コンピューターが再起動します。非アクティブ化に関する確認メッセージが表示されます。

CRSタイプのステータスを確認するには csrutil status


1
無効Iと、それはまだ私には何もすることはできません:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
ロベルト

でお試しくださいsudo
ラグナー

ほとんどの場合、ローカルのカスタマイズを/ usr / local(たとえば、/ binまたは/ usr / binではなく/ usr / local / bin)にインストールすることをお勧めします。それがその目的であり、これは長い間そうでした。可能であれば、SIPを無効にするのではなく、このベストプラクティスに従うことをお勧めします。本当に制限された場所で変更を行う必要がある場合は、SIPを無効にして変更を加え、すぐにcsrutil enable(回復モードで)SIPを再度有効にすることをお勧めします。
ゴードンデイヴィ

2

以下のようラグナーが言及した/usrディレクトリを除いて、システムがロックダウンされています/usr/local。次に、シナリオで許可されている場合、シンボリックリンクをに追加することをお勧めし/usr/local/binます。の使用に関する厳密な要件がない場合/usr/binは、「許可されていない操作」エラーを回避する1つの方法です。


1

特定のファイルまたはディレクトリがOSXのSystem Integrity Protection(SIP)/ Rootlessによって制限されているかどうかを確認するには、-Olsオプションを使用してファイルフラグを一覧表示します(たとえば、/のどのディレクトリが制限されているかを確認します)。

ls -Ol /

SIPによって制御されるディレクトリまたはファイルは、「制限付き」として表示されます。

SIP /ルートレスに関するこの質問への回答には、詳細が記載されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.