You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派运行Python脚本删除文件遇权限错误相关问题咨询

问题原因说明

这不是多因素巧合,也不是Raspbian的异常行为,是冗余调用sudo触发了Linux默认的sudo安全策略限制导致的权限问题,具体逻辑如下:

  • rc.local本身的执行身份是root:无论是SysV init还是systemd管理的Raspbian系统,rc.local服务默认都以root用户身份执行内部所有命令,你修改为python /home/.../erasePi.py后,脚本本身就已经获得了root权限,完全满足删除、移动文件的权限要求,属于正确用法。
  • 冗余添加sudo反而会触发执行失败:Raspbian的默认sudo配置中开启了两项默认规则:
    • Defaults env_reset:执行sudo时会重置当前会话的环境变量,避免环境变量泄露带来的安全风险
    • Defaults requiretty:要求执行sudo的会话必须有TTY终端,无终端的非交互场景下会直接拒绝sudo执行
      rc.local属于开机无终端的非交互执行场景,你在已经是root身份的前提下再加sudo调用脚本,会直接被sudo的安全规则拦截执行,你之前看到的权限不足,本质是sudo执行失败、脚本没有正常以root身份启动导致的。

如果需要验证这个结论,可以查看/var/log/syslog中的开机日志,能找到对应时间点的sudo报错信息,格式通常为sudo: no tty present and no askpass program specified。

内容的提问来源于stack exchange,提问作者Pepito Sbazzeguti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:27:08