`` 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.