Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EACCES: permission denied with Node JS

I get below error when write a file (file name is book) with Node.js, could you please help?

Error: EACCES: permission denied, open '/book'
    at Object.openSync (fs.js:443:3)
    at Object.writeFileSync (fs.js:1163:35)
    at Object.<anonymous> (/home/ubuntu/remoteserver/ionicappGate.js:375:6)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:266:19)

The code is as below

const fs = require('fs');
const path = "/book";

//do whatever required after initialize
fs.writeFileSync(path, "hello book");
app.use("/", router);

app.listen(4000, () => console.log('Platform Server running on port 4000'))
like image 586
lei lei Avatar asked Jan 01 '23 12:01

lei lei


2 Answers

You're trying to write to the root of your file system "/book". This is probably write protected (default in Linux). If you really mean to write to that directory, check to make sure the user running the node process has write permissions to that folder. Otherwise, change to the path relative to the script such as ./book and again make sure the user running the node process has write permissions to that folder.

like image 55
Paul Avatar answered Jan 05 '23 01:01

Paul


I hope the script command below may resolve your problem:

 chmod -R 755 book/* 
like image 24
tienhien1102 Avatar answered Jan 05 '23 01:01

tienhien1102