如何确定应用程序是否是在 Mac OS X 上通过以 root 身份打开启动的?

如何确定应用程序是否是在 Mac OS X 上通过以 root 身份打开启动的?

在 OS X 中,如何确定通过打开命令启动的应用程序是否以提升的权限启动?

我尝试作为示例sudo open http://www.google.com/,但活动监视器似乎没有显示表明 Safari 进程以 root 身份运行的信息。

答案1

(针对已澄清的问题添加第二个答案)

当你使用时sudo open http://google.com,系统open 以 root 身份运行,但open实际上只是MacOS 启动服务,它仍以登录用户身份运行。

实际上,活动监视器显示,由以下程序打开的 Safari 实例sudo open http:/google.com不是以 root 身份运行,因为“用户”列显示的是您的用户名,而不是root

但是,你可以使用 sudo 直接在命令行上调用 Safari,绕过启动服务:

$ sudo /Applications/Safari.app/Contents/MacOS/Safari http://google.com

现在在活动监视器中,您可以确认它正在运行root

答案2

我假设您的意思是“以 root 身份运行”。请注意,仅仅因为您以 root 身份运行,并不意味着您以最高优先级运行;使用该sudo命令也不一定意味着该进程以 root 身份运行。

但是除了这两个警告之外,请从终端命令提示符尝试以下操作:

$ ps aux | grep ^root

过滤以 root 身份运行的进程列表。或者甚至(取决于您的 Mac OS 版本):

$ ps -u root

答案3

要查看已运行的进程的日志,sudo您可以使用grepsystem.log:

$ grep sudo /var/log/system.log

您也可以使用控制台应用程序。从日志列表中选择“system.log”,然后在搜索栏中输入“sudo”。

相关内容