なぜ私の `rootless.conf`は、SIPがどのファイルに` restricted`フラグを処理するかの選択に常に影響を与えるわけではないのですか?


8

ソースが言うこと

他の人と同じように、私の/System/Library/Sandbox/rootless.confファイルには次のエントリが含まれています。

$ cat /System/Library/Sandbox/rootless.conf
[…]
        /System
[…]
*       /System/Library/Extensions
        /System/Library/Extensions/*
[…]

私が見つけた主題に関する すべてのソース(例1 2 3)は、のルールに従ってrootless.conf、これらのエントリが起動時に適用され、次のように大まかに解釈できることを示唆しているようです:

  1. /System階層内では、より具体的なルールがそのようなアクセスを許可する場合を除いて、プロセスはファイルまたはフォルダーへの書き込みを許可されません。

  2. 内部では/System/Library/Extensions、root権限を持つプロセスはすべて、新しいファイルとサブフォルダを作成できます。

  3. ただし、プロセスは、内の既存のファイルまたはサブフォルダを変更または削除することはできません/System/Library/Extensions

私が実際に観察するもの

ただし、の実際の内容を調べた/System/Library/Extensionsところ、驚いたことに、SIPがアクティブであるにも関わらず、完全に書き込みと削除が可能ないくつかのファイルとフォルダーを発見しました。

$ csrutil status
System Integrity Protection status: enabled.
$ ls -lAO /System/Library/Extensions | tail -16
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 corecrypto.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 exfat.kext
drwxr-xr-x  3 root  wheel  -            102 19 Aug  2013 hp_Inkjet9_io_enabler.kext
drwxr-xr-x  3 root  wheel  -            102 27 Apr  2013 hp_fax_io.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 iPodDriver.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 mcxalr.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 msdosfs.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 ntfs.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 pmtelemetry.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 pthread.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 smbfs.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 triggers.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 udf.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 vecLib.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 webcontentfilter.kext
drwxr-xr-x@ 3 root  wheel  restricted   102 20 Apr  2016 webdav_fs.kext

hp_Inkjet9_io_enabler.kexthp_fax_io.kextは、El Capitanに更新したときにすでに存在していたサードパーティのカーネル拡張機能であることに注意してください(2016年5月に行いました)。

でSIP例外のリストを検索すると/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths、そこにリストされているサードパーティ拡張機能も表示されません。

$ defaults read /System/Library/Sandbox/Compatibility.bundle/Contents/Info.plist CFBundleVersion
12.0
$ grep Extensions /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleRTL815XComposite109.kext
/System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleRTL815XEthernet109.kext

restrictedフラグとcom.apple.rootless属性が欠けているカーネル拡張機能がさらに12個以上見つかりました。影響を受けるすべてのカーネル拡張機能は、過去10年間に私がインストールしたサードパーティの拡張機能のようであり、どうやらEl Capitanのアップデートを生き残ったようです。

これは私に次の難題について疑問を残します:

私が知りたいこと

Q1。不足しているフラグ

サードパーティのカーネル拡張機能がなく、実際に内部で手動で作成したファイルもないため、規則に反するように思われる場合でも/System/Library/Extensionsrestrictedフラグやcom.apple.rootless属性を受け取ることはありますrootless.confか?

たとえば、ls -dlOリビールのパスチェーンに沿ってhp_fax_io.kext

$ ruby -rpathname -e 'puts Pathname.new("/System/Library/Extensions/hp_fax_io.kext").enum_for(:ascend).to_a' | xargs ls -dlO
drwxr-xr-x   39 root  wheel  -           1394 19 Jan 11:36 /
drwxr-xr-x@   4 root  wheel  restricted   136 19 Jan 11:29 /System
drwxr-xr-x   80 root  wheel  restricted  2720 10 Jan 19:19 /System/Library
drwxr-xr-x  297 root  wheel  sunlnk     10098 22 Jan 00:57 /System/Library/Extensions
drwxr-xr-x    3 root  wheel  -            102 27 Apr  2013 /System/Library/Extensions/hp_fax_io.kext

また、私がヨセミテからアップグレードしたときに、El Capitanインストーラーは多くの場合、基本的にすべてとその祖母をSIP隔離に移動することを選択したことを覚えています。

Q2。施行の時期

私がするなら:

  • 復元ボリュームを起動し、

  • 次にrootless.conf(元のボリュームに)行を追加します。

    /usr/local/*
    
  • その後、元のボリュームで再度再起動します。

次にmacOSは、次の再起動時にすべてのファイル/usr/local/restrictedフラグ付きで拒否しますか?

そうでない場合、これは私に私の最後の質問をもたらします:

Q3。実際の目的

rootless.conf 実際に役立つ目的は何ですか?


2
コミュニティの誰かがいくつかの答えやヒントさえあればいいのに。同様の質問があります。
CXJ 2018年

2
これに合わせて、rootless.confを編集(SIPを無効化、ファイルを編集、SIPを再度有効化)して、保護するディレクトリを変更しないでください。これは実際には発生していないようです...それで、ファイルはまったく読み込まれていますか?
Wowfunhappy 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.