0

我无法从 sudoed python 脚本运行 firefox,该脚本将权限授予普通用户。如果我写

$须藤蟒蛇
>>> 导入操作系统
>>> 导入密码,grp
>>> uid = pwd.getpwnam('norby')[2]
>>> gid = grp.getgrnam('norby')[2]
>>> os.setegid(gid)
>>> os.seteuid(uid)
>>> 导入浏览器
>>> webbrowser.get('firefox').open('www.google.it')
真的
>>> # 它返回 true 但不起作用
>>> 从子流程导入 Popen,PIPE
>>> p = Popen('firefox www.google.it', shell=True,stdout=PIPE,stderr=PIPE)
>>> # 不执行命令
>>> 你不应该在没有 -H 选项的情况下通过 sudo 运行 Iceweasel。
继续,就好像您使用了 -H 选项一样。
未指定协议
错误:无法打开显示::0

我认为这不是 python 问题,而是 firefox/iceweasel/debian 配置问题。也许firefox只读取UID而不是EUID,并且不执行进程,因为UID等于0。你怎么看?

4

1 回答 1

1

This could be your environment. Changing the permissions will still leave environment variables like $HOME pointing at the root user's directory, which will be inaccessible. It may be worth trying altering these variables by changing os.environ before launching the browser. There may also be other variables worth checking.

于 2009-07-16T20:47:04.450 回答