Sử dụng Gatekeeper để kiểm soát quyền truy cập vào Ứng dụng
Bạn có thể sử dụng spctl
(Gatekeeper) để tạo danh sách các ứng dụng được phê duyệt và không được chấp thuận.
Ví dụ: giả sử bạn muốn cho phép Mail nhưng chặn Chrome.
sudo spctl --add --label "ApprovedApps" /Applications/Mail.app
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app
Lệnh trên sẽ "gắn nhãn" Mail và Chrome tương ứng là "Đã phê duyệt" và "Bị từ chối" (bạn có thể sử dụng các mô tả của riêng mình).
Bây giờ, để bật / tắt ứng dụng, bạn đưa ra các lệnh:
sudo spctl --enable --label "ApprovedApps"
sudo spctl --disable --label "DeniedApps"
Ưu điểm này là để thêm một ứng dụng khác vào danh sách, bạn chỉ cần thêm nhãn thích hợp:
sudo spctl --add --label "ApprovedApps" /Applications/Another.app
Ngoài ra, bạn có thể cấm mã từ Mac App Store chạy (được tìm thấy trong spctl
trang man - man spctl
).
spctl --disable --label "Mac App Store"
Điều này sẽ ngăn mọi người tải xuống Ứng dụng từ Cửa hàng ứng dụng và cài đặt / chạy nó.
Xử lý quản trị viên /sudoers
Như đã nêu trong các bình luận, bất cứ điều gì Quản trị viên có thể làm, một Quản trị viên khác có thể hoàn tác. Việc sử dụng spctl
yêu cầu root, nhưng chỉnh sửa tệp sudoers để hạn chế quyền truy cập vào một lệnh cụ thể có thể ngăn người dùng / quản trị viên khác hoàn tác các thay đổi của bạn.
Xem Làm thế nào để ngăn người dùng sudo chạy các lệnh cụ thể? để biết chi tiết về cách định cấu hình "danh sách trắng ngoại lệ" trong sudoers
tệp của bạn .
Ví dụ: để cho phép người dùng Sam truy cập vào tất cả các lệnh ngoại trừ spctl
, bạn sẽ đặt vào tệp sudoers:
sam ALL = ALL, !/usr/sbin/spctl
Bây giờ, đây là cách "nhanh và bẩn" để ngăn chặn quyền truy cập spctl
nhưng cuối cùng, nó không hiệu quả vì nếu quản trị viên khác hiểu được chiến lược của bạn, tất cả những gì anh ta / cô ta phải làm là đổi tên lệnh và họ có quyền truy cập.
Từ sudoers
trang người đàn ông:
Nói chung, nếu người dùng có sudo TẤT CẢ, không có gì ngăn cản họ tạo chương trình của riêng họ, cung cấp cho họ một vỏ gốc (hoặc tạo bản sao vỏ của chính họ) bất kể `! ' các yếu tố trong đặc tả người dùng.
Để thực sự khóa nó, bạn cần phải buộc người dùng khác su
là một người dùng khác (tức là nhà điều hành) hoặc tạo một danh sách trắng các lệnh được phép mặc định để chặn mọi thứ khác. Tuy nhiên, điều đó rất tốn thời gian và khá nguy hiểm vì bạn có thể khóa mọi người khỏi các chức năng quan trọng.