Tại sao `rootless.conf` của tôi không phải lúc nào cũng ảnh hưởng đến lựa chọn của SIP trong đó các tệp nào được xử lý cờ` bị hạn chế?


8

Những nguồn nào nói

Giống như mọi người khác, /System/Library/Sandbox/rootless.conftệ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:

  1. Trong /Systemhệ 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 đó;

  2. 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;

  3. 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.kexthp_fax_io.kextlà 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 restrictedcờ và com.apple.rootlessthuộ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 restrictedcờ hoặc com.apple.rootlessthuộc tính, mặc dù rootless.confquy tắc dường như bắt buộc ngược lại?

Ví dụ: một ls -dlOchuỗi các đường dẫn hp_fax_io.kexttiế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 restrictedcờ 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ụ?


2
Chắc chắn mong muốn ai đó trong cộng đồng có một vài câu trả lời hoặc thậm chí gợi ý. Tôi đã có những câu hỏi tương tự.
CXJ

2
Để phù hợp với điều này, không nên chỉnh sửa rootless.conf (tắt SIP, chỉnh sửa tệp, bật lại SIP) thay đổi thư mục nào được bảo vệ? Điều này dường như không thực sự xảy ra ... vậy tập tin có được đọc không?
Wowfunhappy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.