การหยุด LaunchAgents และ Daemons


23

ฉันทำงานเป็นผู้ดูแลในสภาพแวดล้อมของวิทยาลัย หนึ่งในความท้าทายคือการหยุดบริการที่นักเรียน CS CS ติดตั้งให้ บางครั้งพวกเขาก็สามารถเข้าถึงผู้ดูแลระบบและติดตั้งตัวแทนการเปิดตัวและ daemons ในบางระบบนักเรียนยังได้เพิ่ม plists บางอย่างเป็น com.apple.myprog.run ปัญหาคือสิ่งเหล่านี้ไม่มีอยู่ในไดเร็กทอรี launchagents หรือในไดเร็กทอรี launchdaemons

ดังนั้นคำถามของฉันคือวิธีค้นหาเส้นทางสำหรับบริการ daemon เหล่านี้จากนั้นขั้นตอนต่อไปคือวิธีหยุดสิ่งเหล่านี้ เนื่องจากบางสิ่งเหล่านี้สามารถเริ่มต้นได้อีกครั้งและอีกครั้ง (ขึ้นอยู่กับธงบางอย่าง)


ปัญหาที่คล้ายกัน launchctl load -wF /Library/LaunchDaemons/name.of.this.plistไม่สามารถหยุดภูตที่เริ่มต้นขึ้นด้วย
Meltemi

คำตอบ:


21

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

  • launchctl unload /System/Library/LaunchAgents/com.apple.AppStoreUpdateAgent.plist

man page สำหรับlaunchctlมีเอกสารที่ดีสำหรับการควบคุมงาน สำหรับความพ่ายแพ้ทั่วไปของ CS Major คุณอาจพิจารณาว่าพวกเขาแก้ไข apple plists ที่มีอยู่เพื่อทำให้พวกเขาทำสิ่งที่คุณไม่คาดหวังดังนั้นมันจะพิสูจน์ได้ง่ายกว่าเพียงแค่ติดตั้งระบบปฏิบัติการใหม่และย้ายข้อมูลผู้ใช้กลับคืน จากการสำรองข้อมูล (โดยเฉพาะการจ่ายเงินเพื่อบันทึกการติดตั้งไฟล์ plist ใหม่ใน / System / Library, / พื้นที่ห้องสมุด (และอาจตรวจสอบผู้ใช้ ~ / Library ของผู้ดูแลระบบด้วย) การสูญเสีย admin / root กับบุคคลที่รู้วิธีการเปลี่ยนแปลง ระบบดังกล่าวเป็นเกมที่เหนือกว่าและการป้องกัน (การค้นหาและการปิดใช้งาน) การเปลี่ยนแปลงนั้นใช้เวลานานมากเมื่อเทียบกับการกระทำผิดกฎหมาย (ติดตั้งระบบใหม่จากแหล่งข้อมูลที่รู้จักดีและใช้เครื่องมือจัดการการกำหนดค่า


ประเด็นก็คือฉันไม่รู้ว่าเก็บ Plist ไว้ที่ไหน ฉันค้นหาในไดเรกทอรี LaunchAgents แล้วและฉันไม่เห็นแอพพลิเคชั่นดังกล่าว
Prashant

พวกเขาสามารถไปได้ทุกที่ คุณสามารถบูทเข้าสู่เซฟโหมดและเปรียบเทียบเอาต์พุตรายการ launchctl กับรายการบูตปกติ mdfind จะแสดงไฟล์ที่มีงานหลอกลวง (หากพวกเขาไม่ได้แยกพวกเขาออกจากสปอตไลท์) นอกจากนี้คุณยังสามารถเรียกใช้ fs_usage ตามหลักวิชากับ launchd เพื่อติดตามว่าไฟล์ใดที่อ่านในระหว่างการบู๊ต แต่โลจิสติกส์ของการเรียก fs_usage นั้นจะเริ่มในไม่ช้าเมื่อบู๊ตรวมกับความจริงที่ว่าคุณยังคงต้องตรวจสอบไฟล์ plist ทุกไฟล์ ตัดการทำงานเพื่อ "ตรวจจับการเปลี่ยนแปลงและลบการผ่าตัดออก" เมื่อเทียบกับการเริ่มต้นใหม่ทั้งหมด
bmike

1
หากคุณต้องการค้นหาทุกอย่าง. plist บนระบบสิ่งนี้จะทำ มันเป็นรายการยาว find / -type f -name "*.plist"
afragen

man launchctl unload ในเวอร์ชั่นก่อนหน้าตัวเลือกนี้จะแก้ไขไฟล์กำหนดค่า ตอนนี้สถานะของคีย์ Disabled จะถูกเก็บไว้ที่อื่นบนดิสก์ .. (
Nakilon

@Nakilon คุณจะแม่นยำเกี่ยวกับรุ่นหรือไม่ คุณหมายถึงการยกเครื่อง 10.11 ของ launchd หรือ "รุ่นก่อนหน้า" อื่นหรือไม่?
bmike

17

วิธีที่ง่ายที่สุดที่ฉันพบว่าทำคือ

sudo launchctl list | grep "rough name of what you want to find"
sudo launchctl remove "label.of.the.file"

ขอบคุณนี่คือสิ่งที่ฉันต้องการ วิธีลบบริการหลังจากลบไฟล์!
chmac

2

ลองตรวจสอบตำแหน่งเหล่านี้:

/ ผู้ใช้ / ชื่อผู้ใช้ของคุณ / ไลบรารี / LaunchAgents /

/ Library / LaunchAgents /

/ Library / LaunchDaemons /

/ ระบบ / Library / LaunchAgents /

/ ระบบ / Library / LaunchDaemons /


1

คุณสามารถทำ "launchctl dumpstate" และมันจะแสดงบริการที่โหลดทั้งหมดและเส้นทางไปยัง. plist เริ่มต้นและเนื้อหา

คุณอาจต้องการเรียกใช้ผ่านบางสิ่งบางอย่างที่น้อยลงเนื่องจากทิ้งข้อมูลจำนวนมาก

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