Eu tenho um aplicativo da web em execução no Ubuntu 14.04. O serviço de implantação do aplicativo cria usuários, grupos e permissões separados automaticamente ao implantar o aplicativo no meu servidor na AWS.
O aplicativo é executado como um usuário chamado nginx
, que faz parte de um grupo também chamado nginx
. Quando eu ssh em devo fazer assim como outro usuário: michaelmichael
. Eu não faço parte do grupo nginx
.
O aplicativo tem um /tmp/cache
dir que eu devo ser capaz de gravar como o usuário michaelmichael
para inicializar manualmente algumas configurações. Quando tento fazer isso, recebo um erro de 'permissão negada'.
Meu próximo passo é verificar as permissões da pasta. As coisas começam a ficar confusas. O diretório é um link simbólico para que ele possa se referir a várias iterações do aplicativo. Assim, por exemplo, o diretório real para o qual eu tento gravar é /var/deploy/my-app/web_head/releases/20150221204050/tmp/cache
Se eu ls -l
neste diretório eu obtiver o seguinte:
lrwxrwxrwx 1 nginx nginx 43 Feb 21 20:40
/var/deploy/my-app/web_head/releases/20150221204050/tmp/cache ->
/var/deploy/my-app/web_head/shared/cache
Se eu ls -l /var/deploy/my-app/web_head/shared
, posso ver que cache
é um diretório com as seguintes permissões:
drwxrwxr-x 14 nginx nginx 4096 Feb 21 20:31 cache
Então, para escrever neste diretório, eu preciso adicionar meu usuário, michaelmichael
ao grupo nginx? Preciso modificar as permissões do diretório com links simbólicos (o /releases/
dir) ou o próprio diretório (o cache
dir)?