此错误的原因是什么:错误: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。然后,我仅重新创建了用户帐户 db,并尝试/usr/bin/node /home/db/dbb/m/i.js以 db 身份运行命令,但出现了相同的错误。

这次当我这样做时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

相关内容