web-dev-qa-db-ja.com

OS X El Capitan 10.11でルート下のファイルのコピーに失敗しました

ルートファイルの下の/ Systemフォルダーにコピーしようとしています。以前のすべてのOS Xバージョンで正常に動作しますが、El Capitan 10.11では動作しません

ここで、ターミナルのルートの下にファイルをコピーする方法:

MACMINI:~ myusername$ Sudo su -
MACMINI:~ root# cp /Users/myusername/Desktop/myfile.plist /System/Library/LaunchDaemons/

その結果、エラーが表示されます。

cp: /System/Library/LaunchDaemons/myfile.plist: Operation not permitted
18
Sergio

セキュリティ測定が無効になっていない限り、特定のシステムディレクトリがOS X 10.11(El Capitan)で(ルートを含む)まったく書き込まれないように保護されていることを考慮すると(Chris Ostmoによる回答を参照)、明らかに良いアイデアですカスタムシステムハッキングでこれらのディレクトリをまったく変更しないでください。

独自のLaunchDaemonsは次の目的でインストールする必要があります。

/Library/LaunchDaemons/

/ System/Library/LaunchDaemons /ではありません)

9
Haru

El Capitanは、特定のシステムディレクトリを「ルートレス」モードで保護するようになりました(別名、システム整合性保護)。コマンドls -lO /System/Library/LaunchDaemonsを実行すると、その下のディレクトリとファイルが「制限付き」としてマークされていることがわかります。

次のようにルートレスモードを無効にできます。

  1. 復旧モードで再起動します(再起動してCmd-Rを押し続けます)
  2. ターミナルを開く
  3. 次のコマンドを使用します:csrutil disable
  4. 再起動して、El Capitanより前に機能していたコマンドを実行します

完了したら、同じ手順に従って、ステップ3でcsrutil enableを使用してSIPを再度有効にすることを強くお勧めします。

Pear/peclモジュールとmacports/homebrewアプリをインストールしようとしたときに、同じ根本原因で問題が発生しました。通常、これらのファイルは/ usr/includeおよび/ usr/libにインストールする必要がありますが、これらも制限されています。

注:この問題についてのインターネットに関する以前の回答では、NVRAM設定を変更する方法を説明していますが、Appleは、NVRAMメソッドがEl Capitanのパブリックリリースで動作しなくなると述べました。GMリリースではすでにNVRAMの回避策が無効になっているため、この回答により、前進するために必要なものが得られます。

更新:この同じ方法は、macOS Sierra、およびおそらく近い将来の新しいmacOSバージョンにも適用可能です。

40
Chris Ostmo

いいえ。ただし、El Captainの2番目のコピーを使用してシステムを起動する場合、たとえば:

以前のインストールからEl CaptainをUSBキーで起動し、これを行うことができます

cd /Volumes/Usb-Drive 

次に、Finderでディレクトリを表示するには、次の操作を行います。

Sudo chflags nohidden usr

次に、マウスでファイルをコピーし、Finderにドラッグアンドドロップします。

0
alan.waggett