
Eu tenho dois três usuários:
db, nr, ba
Todos os três são membros do grupo dbp
Node.js está instalado em /usr/bin
Se eu executar o comando:
/usr/bin/node /home/db/dbb/m/i.js
Então funciona bem quando eu executo como usuário "ba". Mas se eu executá-lo como "nr", ele trava com o erro:
Error: EACCES, permission denied './manifest.json'
dbb tem permissões: drwxr-s--- db dbp
manifest.json é um arquivo localizado na mesma pasta que i.js. O aplicativo parece iniciar e executar até tentar ler manifest.json, momento em que ele trava.
EDITAR: umask é 027
EDITAR: A saída de 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: -
EDIT: apaguei a conta do usuário db, bem como o grupo dbp. Configurei o umask para 002. Em seguida, recriei apenas a conta do usuário db e tentei executar o comando /usr/bin/node /home/db/dbb/m/i.js
como db, mas tive o mesmo erro.
Desta vez, quando fiz isso stat manifest.json
, obtive a mesma saída:
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: -
Responder1
Este arquivo pertence ao usuário db
e ao grupo db
:
Access: (0444/-r--r--r--) Uid: ( 1001/db) Gid: ( 1001/db)
Mas é legível mundialmente (444). A hierarquia de diretórios em que está não é, mas deve ser legível por group dbp
,a menos que /home/db
tem permissões não padrão. Este pode ser o caso, já que sua umask (027) é mais rígida que o normal (002).
Caso contrário, parece que o erro EACCES provavelmente ocorreu porque o processo tentou abrir o arquivo paraescrita.
Responder2
Abra o terminal e digite o seguinte comando:
sudo chown -R $user:$group ./manifest.json