Permissão no shell, mas não no programa gerado, mesmo que o usuário e o grupo sejam os mesmos?

1

Eu tenho teste de usuário e grupo: teste

Quando estou no shell logado como teste, posso fazer git pull origin master e npm install e funciona.

Eu também tenho um script cgi que é chamado de Caddy (um servidor web). Ele faz a mesma coisa como o mesmo usuário , mas ainda recebe erros de permissão.

Como eu depuro isso. Que comandos me mostrarão por que estou recebendo permissão quando estiver no shell, mas não quando estiver executando um script gerado?

Os erros no script são

Could not create directory '/home/test/.ssh'.

/home/test/.ssh já existe e já tem chaves, etc. Elas funcionam bem no shell

para o npm ele recebe esses erros

npm ERR! Linux 4.4.0-87-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.11.2
npm ERR! npm  v3.10.10
npm ERR! path /home/test/.npm/_locks
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/test/.npm/_locks'

Mas, mais uma vez, executar a partir do shell sem erros.

Eu adicionei id ao script para que eu possa ver com qual usuário o script está sendo executado. Imprime

uid=1000(test) gid=1000(test) groups=1000(test),27(sudo)

Qual é exatamente a mesma coisa que imprime quando digito id no shell

O que mais eu devo procurar?

    
por gman 30.08.2017 / 16:07

1 resposta

2

O problema é que o caddie é executado a partir do systemd e foi configurado para

ProtectHome=true 

, o que significa que /home/test está fora dos limites do script gerado. Não tem certeza de qual é a solução correta, mas pelo menos rastreou a origem do problema

    
por 30.08.2017 / 16:26