树莓派3(Jessie系统)读取file.txt遇Errno 13权限拒绝问题求助
永久解决Raspberry Pi Jessie下Thonny访问
file.txt权限被拒的问题 首先得搞明白为啥sudo python3 filename.py能跑通——因为sudo是以root超级用户身份执行脚本,权限拉满自然能访问文件,但总这么搞既麻烦又有安全隐患。下面给你几个靠谱的永久解决方案:
方案1:调整file.txt的权限与所属用户(优先推荐)
这是最稳妥的做法,让你的普通用户(比如默认的pi用户)拥有访问该文件的权限:
- 先查看文件当前的权限和所属信息,在终端执行:
输出会类似ls -l file.txt-rw-r--r-- 1 root root 456 May 20 14:30 file.txt,这里root root表示文件属于root用户和root组,普通用户自然没权限碰。 - 把文件的所属用户和组改成你的普通用户(比如
pi):sudo chown pi:pi file.txt - 最后确保普通用户有读写该文件的权限:
或者用更通用的权限设置chmod u+rw file.txtchmod 644 file.txt,这样你自己能读写,其他用户只能读,完全满足需求。
方案2:让Thonny以有权限的身份启动(仅当文件必须属于root时用)
如果file.txt因为某些原因必须归root所有,那可以让Thonny本身以root身份启动:
- 在树莓派的应用菜单里找到Thonny,右键点击它的图标选择「属性」
- 把「命令」栏里的内容改成
sudo thonny - 保存后,下次启动Thonny就会以root身份运行,脚本访问
file.txt时就不会有权限问题了。不过要注意:root权限很高,编辑文件时别误改系统关键文件哦。
方案3:检查文件所在目录的权限
有时候文件本身权限没问题,但它所在的目录你没访问权限也会报错(比如文件放在/root目录下):
- 要么直接把
file.txt和你的脚本移到普通用户的目录下,比如/home/pi(最省心) - 要么调整目录的权限,让普通用户能访问:
sudo chown pi:pi /path/to/your/directory chmod u+rwx /path/to/your/directory
总结一下:优先用方案1,尽量让普通用户拥有文件权限,避免依赖root权限,既安全又省心。
内容的提问来源于stack exchange,提问作者gaetano ma
相关产品推荐
相关产品推荐

