EACCES permission denied
一句话:程序没有权限读取、写入、执行某个文件、目录、端口或系统资源。
它是什么
EACCES permission denied通常表示权限不足。它可能出现在npm全局安装、写入日志、上传文件、执行脚本、访问系统目录、Docker挂载目录等场景。核心不是代码逻辑错,而是当前用户没有操作权限。
适合干什么
- 安装依赖或运行脚本时报权限错误的人
- 部署Node、Python、Docker项目的新手
- 处理文件上传、日志写入和缓存目录的人
- 用Linux服务器部署项目的人
不适合干什么
- 业务逻辑异常
- 数据库账号密码错误
- 网络请求403权限不足但不是本机文件权限
- 故意绕过系统权限控制的操作
普通人怎么用
- 看清楚报错里被拒绝的路径或资源
- 确认当前运行用户是谁
- 检查文件或目录权限
- 避免随便对整个系统目录chmod 777
- 只给项目需要的目录最小权限
进阶用户怎么用
- 为应用创建专用运行用户
- 把上传、日志、缓存目录单独授权
- 用chown而不是滥用sudo
- 在Docker里检查容器用户和宿主机挂载权限
常见误区
- 一看到权限错误就sudo npm install
- 把根目录或项目目录chmod 777
- 没有区分本地开发和服务器用户
- Docker容器里用户ID和宿主机不匹配
和相似工具的区别
- EACCES vs 403:EACCES多是系统或文件权限,403多是HTTP服务拒绝访问。
- chmod vs chown:chmod改权限位,chown改文件归属;很多部署问题更适合改归属。
入门步骤
- 定位路径
- 确认用户
- 查看权限
- 最小授权
- 重试命令
- 检查日志
- 记录修复
推荐工具(第三方)
Linux、chmod、chown、Docker、Node.js、Codex