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

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

Eu tenho usuário e grupo test:test

Quando estou no shell logado como teste posso fazer git pull origin mastere npm installfunciona.

Eu também tenho um script cgi que é chamado do Caddy (um servidor web). Faz a mesma coisacomo o mesmo usuáriomas ainda assim ocorre erros de permissão.

Como faço para depurar isso. Quais comandos me mostrarão por que estou obtendo permissão quando estou no shell, mas não quando executo a partir de um script gerado?

Os erros no script são

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

/home/test/.sshjá existe e já possui chaves, etc. Eles funcionam bem no shell

para 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, não há erros ao executar a partir do shell.

Adicionei idao script para poder ver em qual usuário o script está sendo executado. Ele imprime

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

Qual é exatamente a mesma coisa que imprime quando digito idno shell

O que mais devo procurar?

Responder1

O problema era que o caddy é executado no systemd e foi configurado para

ProtectHome=true 

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

informação relacionada