¿Cuál es la causa de este error? Error: EACCES, permiso denegado

¿Cuál es la causa de este error? Error: EACCES, permiso denegado

Tengo dos tres usuarios:

db, nr, ba

Los tres son miembros del grupo dbp.

Node.js está instalado en /usr/bin

Si ejecuto el comando:

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

Entonces funciona bien cuando lo ejecuto como usuario "ba". Pero si lo ejecuto como "nr", falla y aparece el error:

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

dbb tiene permisos: drwxr-s--- db dbp manifest.json es un archivo ubicado en la misma carpeta que i.js. La aplicación parece iniciarse y ejecutarse hasta que intenta leer manifest.json, momento en el que falla.

EDITAR: umask es 027

EDITAR: La salida de stat ./manifest.jsones:

 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: -

EDITAR: Eliminé la base de datos de la cuenta de usuario, así como la base de datos del grupo. Configuré la umask en 002. Luego recreé solo la base de datos de la cuenta de usuario e intenté ejecutar el comando /usr/bin/node /home/db/dbb/m/i.jscomo base de datos, pero obtuve el mismo error.

Esta vez, cuando lo hice stat manifest.json, obtuve el mismo resultado:

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: -

Respuesta1

Este archivo es propiedad del usuario dby grupo db:

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

Pero es legible en todo el mundo (444). La jerarquía de directorios en la que se encuentra no lo es, pero debería ser legible por grupo dbp.a menos que /home/dbtiene permisos no predeterminados. Este puede ser el caso ya que su umask (027) es más estricta de lo normal (002).

De lo contrario, parecería que el error EACCES probablemente ocurrió porque el proceso intentó abrir el archivo paraescribiendo.

Respuesta2

Abra la terminal y escriba el siguiente comando:

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

información relacionada