在 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
您可以使用grep
system.log:
$ grep sudo /var/log/system.log
您也可以使用控制台应用程序。从日志列表中选择“system.log”,然后在搜索栏中输入“sudo”。