`` Rootless.conf`'m neden SIP'nin hangi dosyaların `` kısıtlı '' bayrak tedavisini alacağını seçmesini her zaman etkilemiyor?


8

Kaynaklar ne diyor

Diğer herkes gibi, dosyam /System/Library/Sandbox/rootless.confaşağıdaki girişleri içerir:

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

Konuyla ilgili bulduğum tüm kaynaklar (örnek 1 2 3 ), kurallarına göre rootless.conf, bu girişlerin önyükleme zamanında uygulanacağını ve kabaca aşağıdaki gibi yorumlanabileceğini önermektedir:

  1. /SystemHiyerarşinin içinde, daha özel bir kuralın bu erişim izni verdiği durumlar dışında hiçbir dosyaya veya klasöre hiçbir işlem yazmasına izin verilmez;

  2. içeride/System/Library/Extensions , kök ayrıcalıklarına sahip herhangi bir işlemin yeni dosyalar ve alt klasörler oluşturmasına izin verilir;

  3. ancak, içinde varolan dosyaları veya alt klasörleri değiştirmeye veya silmeye izin verilmez /System/Library/Extensions.

Aslında gözlemlediğim şey

Ancak, asıl içeriğine baktığımda, /System/Library/ExtensionsSIP'in aktif olmasına rağmen mükemmel yazılabilir ve silinebilir olan birkaç dosya ve klasörü şaşırdım:

$ 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

El Capitan'a güncellediğimde (Mayıs 2016'da yaptığım) zaten mevcut olan üçüncü taraf çekirdek uzantıları olduğunu hp_Inkjet9_io_enabler.kextve unutmayın hp_fax_io.kext.

SIP istisnaları listesinde arama yaptığımda /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths, bu üçüncü taraf uzantılarını da burada görmüyorum:

$ 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

restrictedBayrak ve com.apple.rootlessöznitelikten yoksun bir düzineden fazla çekirdek uzantısı buldum ; etkilenen tüm çekirdek uzantıları, son on yıl boyunca yüklediğim 3. taraf uzantıları gibi görünüyor ve görünüşe göre El Capitan güncellemesinden sağ çıktı.

Bu da beni aşağıdaki bilmeceler hakkında merak ediyor:

Bilmek istediğim şey

S1. Eksik bayraklar

Kuralın tam tersini zorunlu kılıyor gibi görünse de , hiçbir üçüncü taraf çekirdek uzantısının - ve aslında içinde elle oluşturduğum hiçbir dosyanın /System/Library/Extensions- bir restrictedbayrak veya com.apple.rootlessöznitelik rootless.confalmamasına ne dersiniz?

Örneğin, a ls -dlOyolu zinciri boyunca hp_fax_io.kextortaya çıkar:

$ 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

Ayrıca, Yosemite'den yükseltme yaptığım zaman, El Capitan yükleyicisinin temelde her şeyi ve büyükannelerini birçok durumda SIP karantinasına taşımayı seçtiğini hatırlıyorum.

S2. Uygulama zamanı

Eğer olsaydım:

  • bir kurtarma birimine önyükleme yapabilir,

  • ardından rootless.conf(orijinal birimde) bir satır ekleyin :

    /usr/local/*
    
  • ve sonra tekrar orijinal birime yeniden başlatın,

Would MacOS sonra altındaki tüm dosyaları söndürmek /usr/local/ile restrictedsonraki yeniden başlatmada bayrakları?

Değilse, o zaman bu beni son soruma getiriyor:

Q3. Gerçek amaç

rootless.conf Aslında hangi amaca hizmet eder?


2
Tabii ki topluluktaki birisinin birkaç cevabı ya da ipucu olsa. Benzer sorularım var.
— CXJ

2
Bu doğrultuda, rootless.conf'u düzenlememelisiniz (SIP'yi devre dışı bırak, dosyayı düzenle, SIP'yi yeniden etkinleştir), hangi dizinlerin korunduğunu değiştirmemeli? Bu aslında gerçekleşmiyor ... dosya hiç okunmuyor mu?
— Wowfunhappy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.