当您以其他用户身份登录时,是否可以以 root 身份运行 Mac OS X GUI 应用程序?[是的,我认识到这通常不是一个好主意。]
当我尝试
sudo open /Path/To/My.app
据我所知,它以登录用户的身份运行。
[我敢肯定您一定想知道我为什么要这样做。唉。我正在 NetRestore Helper 未创建的 NetBoot 映像中运行 NetRestore,因为我需要在执行恢复后运行其他 GUI 软件。它登录到标准管理员帐户。通常,当您运行 NetRestore 时,它会要求您在恢复之前进行身份验证。看来它确定它是 NetBooted 的,并假定它在 root 帐户下运行,并拒绝要求身份验证,因此没有足够的权限执行恢复。]
[很可能我必须调整我的网络启动设置以便它自动登录到 root 帐户,但如果我可以以 root 身份运行一个应用程序,则设置所需的时间会少得多。]
[是的,我可以想出另一种方法来进行多播还原,但 NetRestore 是经过验证的、友好的,并且仍然适用于 Leopard。作为替代方案,我可以使用高级修复命令钩子。
答案1
如果您想以其他用户身份运行,请不要使用open
。Open 将通过 LaunchServices 启动您请求的应用程序,就像您双击它一样加载它。
但是,如果您直接运行应用程序二进制文件,它将正常工作。例如,以 root 身份(即从已经以 root 身份运行的脚本,或通过sudo
)运行/Applications/TextEdit.app/Contents/MacOS/TextEdit
,TextEdit 将以 root 身份运行。
答案2
你可能想尝试伪为此,您可以使用它以系统管理员的权限启动应用程序。
不过我不太清楚你在问什么。如果你想让某些东西自动运行,我想你可以使用程序的启动文档功能来创建启动路径。我没有用过这个功能,但这可能是你想要研究的东西。