EACCES當(dāng)嘗試以訪問權(quán)限禁止的方式訪問文件時,經(jīng)常會遇到此錯誤。當(dāng)您嘗試安裝全局 NPM 包(取決于您安裝 Node.js 和 的方式npm),或者當(dāng)您嘗試在低于 1024 的端口上運行服務(wù)器時,您也可能會遇到此錯誤。
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' }
解決方案
本質(zhì)上,此錯誤表明執(zhí)行腳本的用戶沒有訪問資源所需的權(quán)限。一個快速修復(fù)方法是在腳本執(zhí)行命令前加上前綴,sudo以便以 root 身份執(zhí)行,但 出于安全原因, 這是一個壞主意。
chown對于此錯誤,正確的修復(fù)方法是為執(zhí)行腳本的用戶提供所需的權(quán)限,以便在 Linux 上(如果是文件或目錄)通過命令訪問資源。
sudo chown -R $(whoami) /path/to/directory
如果EACCES嘗試偵聽低于 1024 的端口時遇到錯誤,可以使用更高的端口并通過 設(shè)置端口轉(zhuǎn)發(fā)iptables。以下命令將前往端口 80 的 HTTP 流量轉(zhuǎn)發(fā)到端口 8080(假設(shè)您的應(yīng)用程序正在偵聽端口 8080):文章來源:http://www.zghlxwxcb.cn/article/494.html
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
如果您EACCES在嘗試安裝全局npm包時遇到錯誤,通常意味著您安裝了npm系統(tǒng)存儲庫中找到的 Node.js 和版本。建議的操作過程是卸載這些版本,然后通過 NVM 或Volta 等 Node 環(huán)境管理器重新安裝它們。文章來源地址http://www.zghlxwxcb.cn/article/494.html
到此這篇關(guān)于Error: EACCES: permission denied, open的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!