このエラーの原因は何ですか: エラー: EACCES、権限が拒否されました

このエラーの原因は何ですか: エラー: EACCES、権限が拒否されました

私には 2 〜 3 人のユーザーがいます:

db、nr、ba

3人ともグループ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.jsdb として実行しようとしましたが、同じエラーが発生しました。

今回、 を実行したところ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

関連情報