ทำไม `rootless.conf 'ของฉันไม่ส่งผลกระทบต่อตัวเลือกของ SIP ที่ไฟล์ใดจะได้รับการรักษาแบบ` จำกัด '


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กระบวนการใด ๆ ที่มีสิทธิ์ใช้งานรูทจะได้รับอนุญาตให้สร้างไฟล์และโฟลเดอร์ย่อยใหม่

  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.kextและhp_fax_io.kextเป็นส่วนขยายเคอร์เนลของบุคคลที่สามซึ่งมีอยู่แล้วในขณะที่ฉันอัปเดตเป็น El Capitan (ซึ่งฉันทำในเดือนพฤษภาคม 2559)

เมื่อฉันค้นหารายการข้อยกเว้น 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แอ็ตทริบิวต์ ส่วนขยายเคอร์เนลที่ได้รับผลกระทบทั้งหมดดูเหมือนจะเป็นส่วนขยายของบุคคลที่สามที่ฉันติดตั้งในช่วงทศวรรษที่ผ่านมาและดูเหมือนว่าจะรอดชีวิตจากการอัปเดตเป็น El Capitan

ซึ่งทำให้ฉันสงสัยเกี่ยวกับ conundrums ต่อไปนี้:

สิ่งที่ฉันอยากรู้

ไตรมาสที่ 1 ไม่มีธง

ทำไมไม่มีส่วนขยายเคอร์เนลของบุคคลที่สาม - และในความเป็นจริงไม่มีไฟล์ที่ฉันสร้างด้วยตนเอง/System/Library/Extensions- เคยได้รับการrestrictedตั้งค่าสถานะหรือ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 ในหลาย ๆ กรณี

ไตรมาสที่ 2 เวลาบังคับใช้

ถ้าฉันจะ:

  • บูตเข้าสู่โวลุ่มการกู้คืน

  • จากนั้นเพิ่มrootless.confบรรทัด (ในวอลุ่มดั้งเดิม):

    /usr/local/*
    
  • จากนั้นรีบูตอีกครั้งในโวลุ่มเดิม

หากว่า MacOS แล้วดับไฟล์ทั้งหมดภายใต้การ/usr/local/มีrestrictedธงในการรีบูตต่อไปหรือไม่

ถ้าไม่เช่นนั้นสิ่งนี้จะนำฉันไปสู่คำถามสุดท้าย:

ไตรมาสที่ 3 วัตถุประสงค์ที่แท้จริง

มีจุดประสงค์อะไรrootless.conf จริง ๆให้บริการ


2
แน่นอนว่าหวังว่าใครบางคนในชุมชนจะมีคำตอบหรือคำแนะนำ ฉันมีคำถามที่คล้ายกัน
CXJ

2
สอดคล้องกับสิ่งนี้ไม่ควรแก้ไข rootless.conf (ปิดใช้งาน SIP, แก้ไขไฟล์, เปิดใช้งาน SIP อีกครั้ง) เปลี่ยนไดเรกทอรีใดที่ได้รับการคุ้มครอง ดูเหมือนจะไม่เกิดขึ้นจริง ... ดังนั้นไฟล์ที่อ่านทั้งหมดหรือไม่
Wowfunhappy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.