무슨 소식
다른 사람과 마찬가지로 내 /System/Library/Sandbox/rootless.conf
파일에는 다음 항목이 포함됩니다.
$ cat /System/Library/Sandbox/rootless.conf
[…]
/System
[…]
* /System/Library/Extensions
/System/Library/Extensions/*
[…]
내가 찾은 주제의 모든 소스 (예 1 2 3 )는의 규칙에 rootless.conf
따라 해당 항목이 부팅시 적용되며 다음과 같이 대략적으로 해석 될 수 있다고 제안합니다.
/System
계층 내에서는 보다 구체적인 규칙이 그러한 액세스 권한을 부여하는 경우를 제외하고는 프로세스가 파일 또는 폴더에 쓸 수 없습니다.내부
/System/Library/Extensions
에서 루트 권한이있는 모든 프로세스는 새 파일과 하위 폴더를 만들 수 있습니다.그러나 내부의 기존 파일이나 하위 폴더 를 수정하거나 삭제할 수있는 프로세스는 없습니다
/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
(I 월 2016 년 한) 이미 엘 캐피 업데이트 시간 I에 존재 타사 커널 확장이다.
에서 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/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 검역소로 옮기는 것을 선택했습니다.
Q2. 시행 시간
내가해야한다면 :
복구 볼륨으로 부팅
그런 다음
rootless.conf
원래 볼륨에 줄 을 추가하십시오 ./usr/local/*
원래 볼륨으로 다시 재부팅하면
그러면 다음에 다시 부팅 할 때 macOS가 모든 파일 /usr/local/
을 restricted
플래그 와 함께 사용합니까?
그렇지 않다면, 이것은 나의 마지막 질문으로 연결됩니다 :
Q3. 실제 목적
rootless.conf
실제로 어떤 목적에 도움이됩니까?