
我有兩個三個用戶:
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