EACCES当尝试以访问权限禁止的方式访问文件时,经常会遇到此错误。当您尝试安装全局 NPM 包(取决于您安装 Node.js 和 的方式npm),或者当您尝试在低于 1024 的端口上运行服务器时,您也可能会遇到此错误。
fs.readFile('/etc/sudoers', (err, data) => { if (err) throw err; console.log(data); });
上述代码如果输出错误。
[Error: EACCES: permission denied, open '/etc/sudoers'] { errno: -13, code: 'EACCES', syscall: 'open', path: '/etc/sudoers' }
解决方案
本质上,此错误表明执行脚本的用户没有访问资源所需的权限。一个快速修复方法是在脚本执行命令前加上前缀,sudo以便以 root 身份执行,但 出于安全原因, 这是一个坏主意。
chown对于此错误,正确的修复方法是为执行脚本的用户提供所需的权限,以便在 Linux 上(如果是文件或目录)通过命令访问资源。
sudo chown -R $(whoami) /path/to/directory
如果EACCES尝试侦听低于 1024 的端口时遇到错误,可以使用更高的端口并通过 设置端口转发iptables。以下命令将前往端口 80 的 HTTP 流量转发到端口 8080(假设您的应用程序正在侦听端口 8080):文章来源:https://www.toymoban.com/article/494.html
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
如果您EACCES在尝试安装全局npm包时遇到错误,通常意味着您安装了npm系统存储库中找到的 Node.js 和版本。建议的操作过程是卸载这些版本,然后通过 NVM 或Volta 等 Node 环境管理器重新安装它们。文章来源地址https://www.toymoban.com/article/494.html
到此这篇关于Error: EACCES: permission denied, open的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!