是否可以以 root 身份运行 OS X GUI 应用程序?

Cli*_*ore 5 root mac-osx graphical-user-interface

当您以其他用户身份登录时,是否可以以 root 身份运行 Mac OS X GUI 应用程序?[是的,我知道这通常是个坏主意。]

当我尝试

sudo open /Path/To/My.app
Run Code Online (Sandbox Code Playgroud)

据我所知,它以登录用户身份运行。

[我肯定你想知道我为什么要这样做。叹。我在不是由 NetRestore Helper 创建的 NetBoot 映像中运行 NetRestore,因为在执行还原后我需要运行其他一些 GUI 软件。它登录到标准管理员帐户。通常,当您运行 NetRestore 时,它​​会要求您在还原前进行身份验证。看起来它确定它是 NetBooted 并假定它在 root 帐户下运行,并且拒绝要求身份验证,因此没有足够的权限来执行还原。]

[很可能我将不得不调整我的网络引导设置,以便它自动登录到 root 帐户,但如果我能以 root 身份运行一个应用程序,则设置时间会少得多。]

[是的,我可以想出另一种方法来进行多播还原,但 NetRestore 已被证明是友好的,并且在 Leopard 下仍然有效。作为替代方案,我可以将asr命令与iHook一起使用。]

小智 9

open如果您想以其他用户身份运行,请不要使用。Open 通过 LaunchServices 启动您要求的应用程序,它将加载它,就像您双击它一样。

但是,如果您直接运行应用程序二进制文件,它将起作用。例如,以 root 身份(从已经以 root 身份运行的脚本或 via sudo)运行/Applications/TextEdit.app/Contents/MacOS/TextEdit,TextEdit 将以 root 身份运行。