Raspbian下非特权Python脚本访问/usr/bin/chromedriver权限问题求助
解决方法
首先先确认chromedriver的权限详情,执行命令:
ls -l /usr/bin/chromedriver
输出会类似这样:
-rwxr-xr-x 1 root root 1234567 Aug 10 14:30 /usr/bin/chromedriver
方案1:将用户加入chromedriver的所属组
如果文件所属组不是当前用户所在组,把用户加进去:
- 从上面的输出里拿到组名(比如示例里的
root,也可能是chrome这类专属组) - 执行命令将当前用户加入该组:
sudo usermod -aG 组名 $USER
- 注销当前用户再重新登录,权限才会生效
方案2:设置setgid确保更新后权限不变
如果chromedriver会自动更新,担心更新后权限重置,可以用setgid位让新文件继承组权限:
- 创建一个专门的组(比如
chromedriver):
sudo groupadd chromedriver
- 将当前用户加入这个组:
sudo usermod -aG chromedriver $USER
- 修改chromedriver的所属组并设置setgid位:
sudo chgrp chromedriver /usr/bin/chromedriver sudo chmod g+s /usr/bin/chromedriver
这样下次自动更新时,新的chromedriver文件会自动继承chromedriver组的权限,不用再手动调整。
方案3:让自动更新工具将chromedriver放到用户目录
如果可以修改自动更新工具的配置,让它把chromedriver下载到你有权限的目录(比如~/bin):
- 创建用户专属的bin目录:
mkdir -p ~/bin
- 调整自动更新工具的设置,将chromedriver的安装路径改为
~/bin/chromedriver - 修改Python脚本里的路径:
driver = uc.Chrome( driver_executable_path="/home/你的用户名/bin/chromedriver" )
(把你的用户名换成实际的用户名,部分Python环境也支持直接用~/bin/chromedriver)
另外,执行完chmod o+rx后仍然报错,也可能是父目录权限问题,检查/usr/bin的权限:
ls -ld /usr/bin
确保输出里包含o+x,如果没有的话执行:
sudo chmod o+x /usr/bin
内容的提问来源于stack exchange,提问作者CSanity
相关产品推荐
相关产品推荐

