Problema de Permissões de Pasta

1

Atualmente estou tendo um problema estranho e não corresponde realmente a nada que encontrei aqui, então espero que alguém possa esclarecer meu problema para mim.

Atualmente estou executando um servidor linux Ubuntu 14. Esse servidor atua como um CDN para imagens de imóveis para o meu site. Eu usei upstart para criar um script que reafirma um script batcher de imagem PHP. O script batcher de imagens e tudo está funcionando bem. Ele se conecta ao banco de dados, seleciona uma nova propriedade, cria um diretório para as imagens e faz o download das imagens conforme o esperado.

O problema que estou tendo é que o arquivo PHP está sendo essencialmente chamado pelo root (já que ele é executado como um serviço). Todos os novos diretórios de imagem sendo criados são de propriedade do root em vez do meu ApachedUser: ApacheGroup.

O principal problema é se, por alguma razão, um download de imagem parar no meio e não capturar todas as suas imagens, ele não me permitirá voltar e baixar as imagens restantes, já que a pasta é de propriedade da root e não o usuário do apache.

Coisas que já fiz:

  1. chown -R $user:www-data /var/www/images.domain.com/
  2. chmod g+s /var/www/images.domain.com
  3. setfacl -Rdm d:www-data:rx /var/www/images.domain.com/

De tudo que tenho pronto, isso deve fazer com que todos os novos arquivos / pastas criados por um script sejam de propriedade de meu usuário e grupo do apache.

Pelo que eu posso dizer, no entanto, este não é o caso. Se eu enviar um arquivo de qualquer tipo para qualquer pasta em /var/www/images.domain.com, ele é de propriedade do usuário de FTP e o grupo também é definido como o usuário de FTP. Meu usuário FTP e grupo padrão é o mesmo que o apache deve ser.

Essencialmente eu só preciso de qualquer arquivo / pasta sob o meu diretório /var/www/images.domain.com para ser possuído por $ user: www-data por padrão, mesmo para scripts que possam ser executados pelo root.

Qualquer pensamento ou ajuda seria muito apreciado.

    
por Terry Carter 17.06.2016 / 19:01

1 resposta

1

Ok. Então transando com coisas que eu acho que consegui me resolver.

Para aqueles que usam um script Upstart para disparar e reaparecer scripts PHP, você pode adicionar o seguinte ao seu script Upstart para ser executado como um usuário / grupo específico.

setuid $ user setgid $ group

Em que $ user e $ group são os nomes do usuário e do grupo específicos para os quais você deseja executar seu script.

Meus diretórios de imagem estão sendo criados agora usando propriedade apropriada.

    
por 17.06.2016 / 19:26