如何在 Mac OS X 中以 root 身份运行 GUI 应用程序
熟悉命令行的人都知道,以超级用户权限运行东西通常只需使用sudo 命令即可。这仍然适用于以 root 权限将 GUI 应用程序启动到 OS X,但这不仅仅是将 sudo 添加到其他有用的 open 命令之前的问题,因为“open”以原始用户身份启动应用程序,有或没有 sudo。相反,解决方案是使用 sudo 直接指向给定应用程序包文件中包含的可执行文件。
以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
您可以使用带有grep 的ps 命令确认应用程序是否以root 身份运行,再次以TextEdit 为例:
ps au|grep TextEdit
或者,您可以查看 OS X 进程管理应用程序活动监视器并找到以“根”用户身份运行的应用程序,如顶部屏幕截图和下面的短视频所示:
如果你打算经常以root身份运行一个特定的应用程序,你可以考虑在.bash_profile中放置一个别名来缩短命令字符串。
尽管以 root 身份运行,但并非所有系统文件都可以修改,并且在某些应用程序(如 TextEdit)中打开时,有些文件可能会标记为“锁定”。如果您尚未启用 root 用户,通常可以通过启用 root 用户来解决该问题,但并非所有应用程序都会有该限制。尽管如此,对于某些任务,例如编辑主机文件,您仍然最好坚持使用命令行和基于文本的编辑器,或者使用 BBEdit 或 TextWrangler 等应用程序。