我开始使用 MacOS 上一个著名的自控程序 Cold Turkey。这个程序非常强大,但这还不够,因为我可以以非管理员用户身份打开终端并执行以下命令:
launchctl unload ~/Library/LaunchAgents/launchkeep.name-of-the-program.plist
问题很简单:我该如何阻止非管理员用户执行此操作?我在网上搜索了很多,但似乎只有部分解决方案。我可以“移动”.plist 文件到 LaunchDaemons 文件夹并进行一些调整吗?我试过这样做,但似乎不起作用。
我向 Cold Turkey 的开发者 Felix 询问是否有可能阻止 Mac 上的非管理员用户在不需要管理员权限的情况下执行此命令:
launchctl unload ~/Library/LaunchAgents/launchkeep.cold-turkey.plist
菲利克斯回答说,由于 macOS 的设计方式以及 Safari 扩展正常运行所需的必要权限,因此无法阻止这种情况。
还有希望吗?我不想停止使用该软件;它真的很好。你有什么想法吗?
答案1
您可以使用 守门人 (参数)。
有关其使用的示例,请参阅帖子 在 macOS 上阻止特定应用程序 答案是:
您可以使用
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 spctl
][1] 中找到)。spctl --disable --label "Mac App Store"
这将阻止任何人从应用商店下载应用程序并安装/运行它。
此限制不会影响管理员。