如何将我的应用程序设置为始终以root OSX身份运行

时间:2014-06-02 23:10:59

标签: objective-c macos cocoa

我正在开发一个OSX应用程序,它的某些功能需要ROOT权限 我想出了如何以root身份调试我的应用程序(只需在方案中)。

但我希望用户将其作为Root运行,以便他们可以访问其功能。

我该怎么做?

3 个答案:

答案 0 :(得分:4)

如果它是典型的OS X应用程序包,您可以在终端中以root用户身份运行它:

sudo /Applications/YourAppName.app/Contents/MacOS/YourAppName

您可以保存一个包含此文件的文件,并将其命名为YourAppLauncher.command,它可以从Finder中双击。

或者,在AppleScript中:

do shell script "/Applications/YourAppName.app/Contents/MacOS/YourAppName" ¬
    with administrator privileges user name "username" password "password"

然后将其保存为应用程序以root身份启动您的应用。它不会提示输入密码(如果您需要,请删除后具有管理员权限的所有内容

答案 1 :(得分:4)

不要以root身份运行桌面应用程序。 Mac OS X框架不打算以这种方式使用,并且将导致不期望的行为(例如,root用户在图书馆中拥有的文件/文件夹;处理不响应"强制退出" ;潜在的安全漏洞)。

使用Authorization Services以root身份运行特定的有限特权操作。

答案 2 :(得分:1)

您可以创建本地服务器并使它在/ Library / LaunchDaemons中运行。这将使服务器自动启动并获得root特权。我找到了一篇很好的文章。

https://medium.com/@fahimhossain_16989/adding-startup-scripts-to-launch-daemon-on-mac-os-x-sierra-10-12-6-7e0318c74de1