通过脚本删除Little Snitch [关闭]


2

我希望能够通过Apple Remote Desktop卸载Little Snitch。我在下面看到了以下脚本:http//fromtheadmin.com/kill-and-remove-little-snitch-application-via-ard-script/

但是,当我在运行Little Snitch的测试计算机上本地运行脚本时,终端返回“找不到属于您的匹配进程”。我可以看到活动监视器中的Little Snitch UIAgent和Little Snitch网络监视器进程在执行脚本的同一帐户下运行。

有任何想法吗?

#!/bin/sh
NetworkMonitor="Little Snitch Network Monitor"
UIAgent="Little Snitch UIAgent"
File="/Library/LaunchAgents/at.obdev.LittleSnitchNetworkMonitor.plist"

#remove Little Snitch files and User Preferences

if [ -f $File ] ; then

#Kill Little Snitch Processes
killall $NetworkMonitor
killall $UIAgent

rm -R /Library/Application\ Support/Objective\ Development/
rm -R /Library/LaunchAgents/at.obdev.LittleSnitchNetworkMonitor.plist
rm -R /Library/LaunchAgents/at.obdev.LittleSnitchUIAgent.plist
rm -R /Library/LaunchDaemons/at.obdev.littlesnitchd.plist
rm -R /Library/Little\ Snitch/*
rm -R /Library/Logs/LittleSnitchDaemon.log
rm -R /System/Library/Extensions/LittleSnitch.kext
rm -R "/Applications/Little Snitch Configuration.app"

usr/sbin/jamf displayMessage -message "Computer is shutting down"

sleep 10

reboot -q

exit 0

else

exit 0

fi

谢谢。


运行后重新启动Little Snitch了吗?事实上,运行后如何在Activity监视器中看到它们?
马克

它没有立即重启,只是直接到:找不到属于您的匹配进程。
保罗

1
我觉得我必须问:在什么情况下你想通过远程桌面删除LS?有什么动机干扰移除机器的安全性?
Joost

在用户已安装LS的企业中管理计算机。
保罗

把它搁置。需要编辑来解释jamf是否正在运行脚本以及jamf和LS的版本。2016年的工作原理可能在2017年不合适,现在不太了解问题所在。无需删除它,只需要清理它以获得更多答案。
bmike

Answers:


3

该脚本存在多个问题:

  1. 带有嵌入空格的裸字符串变量:在killall参数周围加上“”。
  2. 矫枉过正:如果您要删除软件并重新启动,则无需重启流程。LS的风险是你可以拍摄自己的会话(和脚本),如果取出LS进程会使网络出现故障。如果您认为需要终止充当网络流量守门员的进程,则应确保您的脚本不受正常挂起处理的影响(请参阅手册页nohup以及batch如何执行此操作)
  3. Underkill:如果你承诺在重启之前杀死LS的活动组件以确保(即好像它是自我保护的)你还需要取出Little Snitch Daemon进程并卸载内核扩展。用户特定的库树中还有日志,缓存,首选项和支持文件。
  4. 不以root身份运行:杀死Little Snitch守护程序,卸载kext,删除大多数(如果不是全部)系统范围的组件,删除多个用户的特定于用户的支持文件,并重新启动所有需要root。
  5. 跑步reboot -q:不要那样做。它在现代MacOS上比历史上更安全,但它仍然可能是麻烦。更好地使用 shutdown -r +1 "Rebooting for software change"它给出了一个小小的宽限期,将该消息发布到任何交互式shell,并使用适当的启动机制来关闭所有内容。如果你想减少礼貌,请使用“现在”和/或不要留言。

0

警告:这个答案已经尝试过,显然不起作用。但是,我在这里留下答案是为了帮助其他人诊断问题。

当您运行脚本时,$NetworkMonitorLittle Snitch Network Monitor不是所需的"Little Snitch Network Monitor"(处理空格)。

我会将代码的前三行更改为:

#!/bin/sh 
NetworkMonitor="\"Little Snitch Network Monitor\""
UIAgent="\"Little Snitch UIAgent\""

我认为这可能会照顾到你的问题。如果没有,请告诉我。


我刚尝试过,但得到的结果相同。终端的输出如下: TestMac:~ TestUser$ sh /Users/TestUser/Desktop/LS\ Script\ Test/LS.sh No matching processes belonging to you were found No matching processes belonging to you were found override rw-r--r-- root/wheel for /Library/Application Support/Objective Development//Little Snitch/.lsd?
保罗

如何尝试跳过使用变量($UIAgent$NetworkMonitor)并将进程名称直接放在killall命令中(仍然用引号括起来)。
内森沃克2012年

我刚刚尝试以root身份运行原始脚本而不是ARD,它似乎有效(没有任何修改)。将进一步测试它,但它可能只需要以root身份运行。稍后会回复。
保罗

0

您需要以管理用户身份登录,并通过在命令前键入“sudo”以root用户身份运行脚本:

sudo /path/to/your/script.sh
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.