停止LaunchAgent和守护程序


23

我在大学环境中担任管理员。挑战之一就是停止CS专业学生安装的服务。不久前,他们获得了管理员访问权限,并在某些系统上安装了启动代理和守护程序。学生们还添加了一些文件,例如com.apple.myprog.run。问题是这些在launchagents目录或launchdaemons目录中不存在。

所以我的问题是如何找到这些守护程序服务的路径,然后下一步是如何停止这些守护程序。由于其中一些可以一次又一次地启动(基于某些标志)。


类似的问题。无法停止以开头的守护程序launchctl load -wF /Library/LaunchDaemons/name.of.this.plist
Meltemi 2012年

Answers:


21

如果要停止此引导项目,只需发出一个unload命令即可通过启动launchctl。要获得永久性修复,请在plist中添加值为true的禁用密钥,或者将文件删除/移动到启动时不会自动扫描的文件夹。

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

launchctl的手册页上有不错的文档来控制作业。至于CS专业大学生的普遍失败,您可能还认为他们编辑了现有的Apple plists,使他们做您不希望的事情,因此事实证明,只需重新安装OS并将用户数据迁移回去,就会容易得多。从备份(请特别注意以重新安装/ System / Library,/ Library空间中的所有plist文件(也许还可以审核admin用户的〜/ Library)。对知道如何更改的用户丢失admin / root系统基本上已经结束,防御(查找和禁用)的更改与进攻相比非常耗时(从已知的好的来源重新安装系统并使用配置管理工具来确保检测到更改的文件)。


关键是我不知道plist的存储位置。我已经在LaunchAgents目录中进行搜索,但是在该目录中没有看到应用程序列表。
Prashant 2012年

他们可以在任何地方。您可以引导进入安全模式,并将launchctl列表输出与常规引导列表进行比较。mdfind将向您显示包含恶意作业的文件(如果它们没有将它们排除在聚光灯之外)。从理论上讲,您还可以针对已启动的fs_usage运行自身,以跟踪其在引导过程中读取的文件,但是再次使fs_usage在引导时尽快运行的物流与您仍然需要检查每个plist文件的事实相结合,意味着您有很多东西削减工作量以“发现变化并通过外科手术将其移除”,而不是开始清洁。
bmike

1
如果您真的想在系统上找到每个.plist,则可以这样做。这是一长串。find / -type f -name "*.plist"
afragen

man launchctl 卸载 在以前的版本中,此选项将修改配置文件。现在,Disabled键的状态存储在磁盘上的其他位置。..(
Nakilon 2015年

@Nakilon您可以精确说明版本吗?您是指已发布的10.11或其他“先前版本”的大修吗?
bmike

17

我找到的最简单的方法是

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

谢谢,这正是我想要的。删除文件后如何删除服务!
chmac

2

尝试检查以下位置:

/用户/您的用户名/图书馆/ LaunchAgents /

/图书馆/ LaunchAgents /

/图书馆/启动守护进程/

/系统/库/启动代理/

/系统/库/启动守护程序/


1

您可以执行“ launchctl dumpstate”,它将显示所有已加载的服务以及启动.plist和内容的路径。

您可能希望通过少一些的方式运行它,因为它会转储很多信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.