บล็อกแอปเฉพาะบน macOS


15

มีวิธีการบล็อกรายการแอพเฉพาะบน macOS หรือไม่?

ฉันค้นหาวิธีแก้ไขปัญหาเช่น Cisdem แต่มีบางช่องในวิธีการทำงานที่ฉันไม่ชอบ

  1. นอกจากว่าคุณจะบล็อกการตรวจสอบกิจกรรมเทอร์มินัลและการตั้งค่าระบบคุณสามารถออกจากกระบวนการ Cisdem หรือสร้างผู้ใช้ใหม่เพื่อหลีกเลี่ยงปัญหาได้
  2. คุณต้องปิดกั้นการตรวจสอบกิจกรรมเทอร์มินัลและการตั้งค่าระบบเพื่อให้ทำงานได้ดี

ฉันต้องการบล็อกแอพไม่ให้รันหรือติดตั้งบน Mac ของฉัน แอพสามารถติดตั้งผ่าน App Store และเว็บ ไม่แน่ใจว่าจะไปเกี่ยวกับเรื่องนี้อย่างไร การเปิดใช้งานการควบคุมโดยผู้ปกครองจะไม่ทำงานเมื่อต้องการสิทธิ์ผู้ดูแลระบบ

แอพเฉพาะที่ฉันต้องการบล็อกคือ Apple Configurator

ความคิดใด ๆ

คำตอบ:


14

ใช้ Gatekeeper เพื่อควบคุมการเข้าถึง Applications

คุณสามารถใช้spctl(Gatekeeper) เพื่อสร้างรายการแอพที่ได้รับอนุมัติและไม่ได้รับการอนุมัติ

ตัวอย่างเช่นสมมติว่าคุณต้องการอนุญาตเมล แต่บล็อก Chrome

sudo spctl --add --label "ApprovedApps" /Applications/Mail.app 
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app

คำสั่งด้านบนจะ "ติดป้ายกำกับ" จดหมายและ Chrome เป็น "อนุมัติ" และ "ปฏิเสธ" ตามลำดับ (คุณสามารถใช้ตัวอธิบายของคุณเอง)

ตอนนี้เพื่อเปิดใช้งาน / ปิดการใช้งานแอพคุณออกคำสั่ง:

sudo spctl --enable --label "ApprovedApps" 
sudo spctl --disable --label "DeniedApps" 

ข้อได้เปรียบนี้คือการเพิ่มแอปอื่นลงในรายการใดรายการหนึ่งคุณเพียงแค่ต้องเพิ่มป้ายกำกับที่เหมาะสม:

sudo spctl --add --label "ApprovedApps" /Applications/Another.app

นอกจากนี้คุณสามารถห้ามโค้ดจาก Mac App Store ไม่ให้ทำงาน (อยู่ในspctlหน้า man - man spctl)

spctl --disable --label "Mac App Store"

วิธีนี้จะป้องกันไม่ให้ใครก็ตามดาวน์โหลดแอพจาก App Store และติดตั้ง / รัน

การจัดการกับผู้ดูแลระบบ /sudoers

ตามที่ระบุไว้ในความคิดเห็นสิ่งที่ผู้ดูแลระบบสามารถทำได้ผู้ดูแลระบบคนอื่นสามารถยกเลิกได้ การใช้spctlต้องการรูท แต่การแก้ไขไฟล์ sudoers เพื่อ จำกัด การเข้าถึงคำสั่งเฉพาะสามารถป้องกันผู้ใช้อื่น ๆ / ผู้ดูแลระบบจากการเลิกทำการเปลี่ยนแปลงของคุณ

ดูวิธีป้องกันผู้ใช้ sudo ไม่ให้รันคำสั่งเฉพาะ สำหรับรายละเอียดเกี่ยวกับวิธีกำหนดค่า "รายการที่อนุญาตด้วยข้อยกเว้น" ในsudoersไฟล์ของคุณ

ตัวอย่างเช่นเพื่อให้ผู้ใช้ Sam เข้าถึงคำสั่งทั้งหมดยกเว้น spctlคุณจะต้องใส่ไฟล์ sudoers:

sam ALL = ALL, !/usr/sbin/spctl

ทีนี้นี่เป็นวิธีที่ "รวดเร็วและสกปรก" ในการป้องกันการเข้าถึงspctlแต่ท้ายที่สุดมันไม่ได้ผลเพราะถ้าผู้ดูแลระบบคนอื่นฉลาดกับกลยุทธ์ของคุณสิ่งที่เขา / เธอต้องทำคือเปลี่ยนชื่อคำสั่งและพวกเขาก็สามารถเข้าถึงได้

จากsudoersหน้าคน:

โดยทั่วไปหากผู้ใช้มี sudo ทั้งหมดไม่มีสิ่งใดที่จะป้องกันพวกเขาจากการสร้างโปรแกรมของตนเองที่ให้รูทเชลล์ (หรือสร้างสำเนาเชลล์ของตนเอง) โดยไม่คำนึงถึง `! ' องค์ประกอบในข้อมูลจำเพาะของผู้ใช้

ในการล็อคมันลงจริง ๆ คุณจะต้องบังคับให้ผู้ใช้รายอื่นเป็นผู้ใช้รายอื่นsu(เช่นโอเปอเรเตอร์) หรือสร้างบัญชีขาวของคำสั่งที่อนุญาตให้เริ่มต้นการบล็อกทุกอย่างอื่น อย่างไรก็ตามนั่นเป็นเรื่องที่ใช้เวลานานและค่อนข้างอันตรายเนื่องจากคุณสามารถปิดกั้นผู้คนจากการทำงานที่สำคัญ


ดี! นั่นคือสิ่งที่ฉันกำลังมองหา ทำได้ดีมาก ขอบคุณมาก!
ทำ

คำตอบที่ยอดเยี่ยมจริงๆอัลลัน - ฉันไม่คิดว่านี่จะเป็นหน้าที่ป้องกันการเข้าถึงไฟล์หรือหยุดส่งสัญญาณ sigkill - ใช่ไหม? apple.stackexchange.com/questions/332124/…
bmike

@bmike - เพิ่งเห็นความคิดเห็นนี้ ขอบคุณสำหรับคำพูดที่ใจดี สำหรับ sigkill ฉันไม่คิดว่าคุณสามารถป้องกันได้เพราะในทางเทคนิคคุณสามารถฆ่ากระบวนการของคุณเอง
อัลลัน

2
ทั้งหมดนี้ฟังดูดี แต่มันก็ไม่ได้ผลสำหรับฉัน (วันที่ 10.14.3) การเปลี่ยนแปลงมีผล แต่ฉันยังสามารถเปิดแอพที่ฉัน "ปฏิเสธ" เปิดใช้งาน Gatekeeper
BSUK

ไม่ได้ผลสำหรับฉันเช่นกัน (ใน 10.14.1)
นักเรียน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.