Những nguồn nào nói
Giống như mọi người khác, /System/Library/Sandbox/rootless.conf
tệp của tôi chứa các mục sau:
$ cat /System/Library/Sandbox/rootless.conf
[…]
/System
[…]
* /System/Library/Extensions
/System/Library/Extensions/*
[…]
Tất cả các nguồn về chủ đề tôi đã tìm thấy (ví dụ 1 2 3 ) dường như đề xuất rằng theo quy tắc rootless.conf
, các mục đó sẽ được thực thi khi khởi động và có thể được hiểu một cách đại khái như sau:
Trong
/System
hệ thống phân cấp , không có quy trình nào được phép ghi vào bất kỳ tệp hoặc thư mục nào, ngoại trừ khi một quy tắc cụ thể hơn cấp quyền truy cập đó;bên trong
/System/Library/Extensions
, bất kỳ quy trình nào có quyền root đều được phép tạo tệp mới và thư mục con;tuy nhiên, không có quy trình nào được phép sửa đổi hoặc xóa bất kỳ tệp hoặc thư mục con hiện có nào bên trong
/System/Library/Extensions
.
Những gì tôi thực sự quan sát
Tuy nhiên, khi tôi xem xét nội dung thực tế của nó /System/Library/Extensions
, tôi đã phát hiện ra một số tập tin và thư mục bất ngờ, mặc dù SIP đang hoạt động, hoàn toàn có thể ghi và xóa được:
$ 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
Lưu ý rằng hp_Inkjet9_io_enabler.kext
và hp_fax_io.kext
là các phần mở rộng kernel của bên thứ ba đã có mặt tại thời điểm tôi cập nhật lên El Capitan (tôi đã làm vào tháng 5 năm 2016).
Khi tôi tìm kiếm danh sách các trường hợp ngoại lệ SIP tại /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
, tôi không thấy các tiện ích mở rộng của bên thứ 3 được liệt kê ở đó:
$ 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
Tôi tìm thấy hơn một chục phần mở rộng kernel cũng thiếu restricted
cờ và com.apple.rootless
thuộc tính; tất cả các tiện ích mở rộng hạt nhân bị ảnh hưởng dường như là các tiện ích mở rộng của bên thứ 3 mà tôi đã cài đặt trong suốt thập kỷ qua và dường như đã sống sót qua bản cập nhật cho El Capitan.
Điều khiến tôi băn khoăn về những câu hỏi hóc búa sau đây:
Những gì tôi muốn biết
Q1. Thiếu cờ
Tại sao không có phần mở rộng kernel của bên thứ 3 - và trên thực tế không có tệp nào tôi tạo thủ công bên trong /System/Library/Extensions
- bao giờ nhận được restricted
cờ hoặc com.apple.rootless
thuộc tính, mặc dù rootless.conf
quy tắc dường như bắt buộc ngược lại?
Ví dụ: một ls -dlO
chuỗi các đường dẫn hp_fax_io.kext
tiết lộ:
$ 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
Tôi cũng nhớ rằng tại thời điểm tôi nâng cấp từ Yosemite, trình cài đặt El Capitan đã chọn chuyển cơ bản mọi thứ và bà của họ vào kiểm dịch SIP trong nhiều trường hợp.
Quý 2 Thời gian thi hành án
Nếu tôi đã:
khởi động vào một khối lượng phục hồi,
sau đó thêm vào
rootless.conf
(trên âm lượng gốc) một dòng:/usr/local/*
và sau đó khởi động lại một lần nữa vào ổ đĩa gốc,
Would MacOS sau đó dập tắt tất cả các file dưới /usr/local/
với restricted
cờ trong lần khởi động tiếp theo?
Nếu không, thì điều này đưa tôi đến câu hỏi cuối cùng của tôi:
H3 Mục đích thực tế
Mục đích nào rootless.conf
thực sự phục vụ?