web-dev-qa-db-ja.com

OS X El Capitanの「制限された」フォルダー/ファイル

OS X YosemiteからOS X El Capitan Developer Previewにアップグレードした後、/ System/Library/LaunchDaemons/ssh.plistを編集してデフォルトを変更しようとしましたカスタムポートへのSSHポート。これは、私が数年間使ってきたプロセスです。

問題は、El Capitanがこのフォルダー内の何かを変更することを許可していないことです( "Sudo"でさえも)。フォルダーとそのファイルは、 "restricted"としてマークされます。コンテンツを "ls -lO"。 OS Xの以前のバージョンと同じフォルダーリストには、「制限付き」は表示されません。

これはOS X El Capitanにとって新しいものですか? "restricted"のファイル/フォルダを編集するにはどうすればよいですか?


これは、El Capitanで導入された "SIP"(System Intregrity Protection)と呼ばれる新機能によるものであることがわかりました。

詳細はこちら: https://forums.developer.Apple.com/thread/4731?q=SIP

残念ながら、実際にSIPを無効にすることなく「制限された」ファイル/フォルダを編集する方法を提案した人はいませんでした。

68

次の方法で一時的にSIPを無効にすることもできます

  1. リブート
  2. 灰色の画面で「Macの音」が聞こえたらすぐに、Cmd + Rを押して回復モードに入ります
  3. 「ユーティリティ」->「ターミナル」を開きます
  4. コマンドcsrutil disableを実行します
  5. 再起動すると、SIPを無効にして通常のOSに到達します
  6. あなたがしたいすべての変更を行います
  7. 再起動
  8. 灰色の画面で「Macの音」が聞こえたらすぐに、Cmd + Rを押して回復モードに入ります
  9. csrutil enableでSIPを有効にします
  10. 再起動
  11. やった
73
Johannes Weiss

10.11が/ System/Libraryの特定のファイルの保護を解除するか、自分で実行できるようになるまで、SIPを無効にしない唯一の方法は、次のようにファイルをコピーして別のサービスを作成することです:

Sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh.plist

そして、システム環境設定の共有パネルを使用する代わりに、自分でサービスを管理します。

Sudo launchctl unload /Library/LaunchDaemons/ssh.plist
Sudo launchctl load -w /Library/LaunchDaemons/ssh.plist
26
empedocle

/ Library/Preferences /のplistに必要な引数を追加してみることをお勧めします。たとえば、私の場合、AlwaysAppendSearchDomainsフラグを追加するには、mDNSResponderにわずかな変更を加える必要がありました。 Apple開発者フォーラムの「bwells」で示唆されているように、私はただ

Sudo launchctl unload /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist
Sudo defaults write /Library/Preferences/com.Apple.mDNSResponder.plist AlwaysAppendSearchDomains -bool YES
Sudo launchctl load /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist

これははるかにクリーンなアプローチであり、再起動後も持続し、アップグレード後も維持されるはずです(少なくともベータ版では、SIPを無効にした後の手動変更は上書きされました)。私の知る限り、これはEl Capitanにとって新しいことです。

4
djh

ファイルシステム管理を無効にしながら、SIPを有効のままにしておくこともできます。回復モードで再起動して実行します:

csrutil enable --without fs

これにより、必要に応じて権限を変更できます。

3
Michael Guthrie
  1. 再起動中に「CMD + R」を押すと、「リカバリ」モードで起動します。
  2. ターミナルを開く
  3. ディスクは/ Volumes/Macintosh HDにマウントされます
  4. 「rm」を使用してファイルを削除します。その端末では絶対に制御できます。
2
Mayank Jain

カーボンコピークローンを使用して、クローン可能なバックアップを作成します。

Bombichのマイクによると、「SIPは現在起動しているボリュームにのみ適用されるため、[ボリューム]を削除するためにバックアップボリュームから起動できます」。

Johannesの答え(リカバリドライブ、csrutilの有効化/無効化)を使用しましたが、再起動が必要です->リカバリドライブ-> sipをオフにする->リブート->がらくたを削除する->リブート->リカバリドライブ-> sipをオンに戻す— > reboot ... 4回の再起動。

しかし、クローンから起動し、元のドライブをセカンダリドライブとして表示すると、2回の再起動で問題のあるファイルを削除できます...はい?

1
blinde