如何在 Mac OS X 中以 root 身份运行 GUI 应用程序

熟悉命令行的人都知道,以超级用户权限运行的东西通常只需要使用 sudo 命令即可。这仍然适用于使用 root 权限将 GUI 应用程序启动到 OS X,但这不仅仅是将 sudo 添加到其他有用的 open 命令,因为 ‘open’ 以原始用户身份启动应用程序,有或没有 sudo。相反,解决方案是使用 sudo 直接指向给定应用程序包文件中包含的可执行文件。

以 root 用户运行的 GUI 应用程序在 Mac OS X 中

以 root 用户身份启动 OS X GUI 应用程序

命令语法如下:

sudo /Path/To/Application/ApplicationName.app/Path/To/Executable

在大多数情况下,这将是存储在 /Applications/ 目录中的应用程序,并且可执行文件几乎总是存储在 Package/Contents/MacOS/ 中,无论应用程序名称是什么:

sudo /Applications/ApplicationName.app/Contents/MacOS/ApplicationName

例如,此命令以 root 身份运行熟悉的 TextEdit 应用程序:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit

要将 TextEdit 作为后台应用程序启动,这意味着它不会在您关闭终端窗口时关闭,请将 -b 标志应用于 sudo:

sudo -b /Applications/TextEdit.app /Contents/MacOS/TextEdit

在 Mac OS X 中以 root 身份启动 GUI 应用程序

您可以使用带有 grep 的 ps 命令来确认应用程序正在以 root 身份运行,再次以 TextEdit 为例:

ps au|grep TextEdit

或者,您可以查看 OS X 进程管理应用Activity Monitor 并找到以“ root’ 用户,如上面的屏幕截图和下面的短视频所示:

如果您打算以 root 身份频繁运行特定应用程序,您可以考虑在 .bash_profile 中放置一个别名以缩短命令字符串。

尽管以 root 身份运行,但并非所有系统文件都可以修改,并且在某些应用程序(如 TextEdit)中打开时,有些文件可能会标记为“已锁定”。这个问题通常可以通过启用根用户来解决(如果您还没有这样做的话)到目前为止,但并非所有应用程序都有该限制。尽管如此,对于某些任务,例如编辑主机文件,您最好还是坚持使用命令行和基于文本的编辑器,或使用 BBEdit 或 TextWrangler 等应用程序。