我正在执行一些自动化任务,并且需要以root身份运行脚本(用于将dirs写入共享等)。我面临的问题是chrome不能以root身份运行(出于显而易见的原因)所以我尝试了各种各样的工作。最新的尝试是使用普通用户配置文件启动chrome,而这种配置文件看起来并没有像该用户那样实际启动应用程序。
有没有办法以root身份启动脚本,并在脚本中启动chrome作为普通用户;或者
将脚本作为普通用户运行并在脚本中以root身份执行相关命令?具体来说,我需要执行os.mkdirs
,chmod
(这已经完成了使用子进程),最后我需要使用with open...
将文件写入目录(这是问题所在的场景)
以root身份启动脚本并尝试以普通用户身份执行chrome,如下所示:
options = webdriver.ChromeOptions()
options.add_agrument('PATH/TO/NORMAL/USER')
browser = webdriver.Chrome(chrome_options=options)
正如所建议的,这似乎并不像普通用户那样启动应用程序,而只是使用用户的配置文件。
答案 0 :(得分:0)
如何使用os.setuid
更改用户ID?
另外,我没有详细研究过,但是它的工作方式可能很有意义:https://github.com/ionelmc/python-su
答案 1 :(得分:0)
你可以尝试两件事。
尝试使用--no-sandbox.
运行chrome
更改主目录中.pki文件夹的所有权或权限。默认情况下,其所有权为root。
sudo chown -R saurabh:saurabh ~/.pki/