Qual é a causa desse erro: Erro: EACCES, permissão negada

2

Eu tenho dois três usuários:

db, nr, ba

Todos os três são membros do grupo dbp

O 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 o executo como usuário "ba". Mas se eu o executar como "nr", ele trava com o erro:

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

o dbb tem permissões: drwxr-s--- db dbp manifest.json é um arquivo localizado na mesma pasta que i.js O aplicativo parece iniciar e é executado até tentar ler o manifest.json, no ponto em que ele falha.

EDIT: umask é 027

EDIT: 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: eu apaguei o db da conta de usuário, bem como o dbp do grupo. Eu configurei a umask para 002. Eu recriou apenas o banco de dados da conta do usuário e tentei executar o comando /usr/bin/node /home/db/dbb/m/i.js asdb, mas tive o mesmo erro.

Desta vez, quando fiz stat manifest.json , obtive o mesmo 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: -
    
por Kaizer Sozay 18.11.2014 / 18:55

2 respostas

1

Este arquivo é de propriedade do usuário db e do grupo db :

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

Mas é legível pelo mundo (444). A hierarquia de diretórios em que ele está não é, mas deve ser legível pelo grupo dbp , a menos que /home/db tenha permissões não padrão. Este pode ser o caso, já que seu umask (027) é mais rigoroso que o normal (002).

Caso contrário, parece que o erro EACCES provavelmente ocorreu porque o processo tentou abrir o arquivo para escrever.

    
por 18.11.2014 / 19:44
-1

Abra o terminal e digite o seguinte comando:

sudo chown -R $user:$group ./manifest.json
    
por 17.05.2016 / 09:01