此錯誤的原因是什麼:錯誤:EACCES,權限被拒絕

此錯誤的原因是什麼:錯誤:EACCES,權限被拒絕

我有兩個三個用戶:

db、nr、ba

三人都是dbp團體的成員

Node.js 安裝在 /usr/bin 中

如果我運行命令:

/usr/bin/node /home/db/dbb/m/i.js

然後當我以用戶“ba”運行它時它工作正常。但如果我以“nr”運行它,那麼它會崩潰並出現錯誤:

Error: EACCES, permission denied './manifest.json'

dbb 具有權限:drwxr-s--- db dbp manifest.json 是一個與 i.js 位於同一資料夾中的檔案 該應用程式似乎會啟動並執行,直到它嘗試讀取manifest.json,此時它崩潰了。

編輯:umask 是 027

編輯: 的輸出stat ./manifest.json是:

 File: `manifest.json'
  Size: 251         Blocks: 8          IO Block: 4096   regular file
Device: ca00h/51712d    Inode: 2598        Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)
Access: 2014-11-18 18:03:48.297158000 +0000
Modify: 2014-11-18 18:03:37.000000000 +0000
Change: 2014-11-18 18:03:48.298380902 +0000
 Birth: -

編輯:我刪除了使用者帳戶 db 以及群組 dbp。我將 umask 設定為 002 /usr/bin/node /home/db/dbb/m/i.js

這次當我這樣做時stat manifest.json,我得到了相同的輸出:

File: `manifest.json'
  Size: 251         Blocks: 8          IO Block: 4096   regular file
Device: ca00h/51712d    Inode: 2368        Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)
Access: 2014-11-18 19:08:35.709657000 +0000
Modify: 2014-11-18 18:03:37.000000000 +0000
Change: 2014-11-18 19:08:35.708011027 +0000
 Birth: -

答案1

db該文件由使用者和群組擁有db

Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)

但世界可讀(444)。它所在的目錄層次結構不是,但它應該可以被群組讀取dbp除非 /home/db具有非預設權限。會發生這種情況可能是因為您的 umask (027) 比正常 (002) 更嚴格。

否則,似乎可能發生 EACCES 錯誤,因為該進程試圖開啟該文件寫作。

答案2

打開終端機並輸入以下命令:

sudo chown -R $user:$group ./manifest.json

相關內容