O proprietário do diretório de uploads é 'www-data', mas isso impede o acesso ao FTP via scripts PHP

2

Para permitir acesso de gravação ao Apache, precisei de chown www-data:www-data /var/www/mysite/uploads na pasta de upload do meu site. Isso me permite excluir arquivos da pasta via unlink() em um script PHP.

Infelizmente, isso impede que outro script PHP, que usa funções de FTP, funcione. Acho que é porque o usuário de FTP é mike e agora que o diretório de uploads pertence a www-data , mike não pode acessá-lo.

Adicionei mike ao grupo www-data , mas isso não resolve o problema.

Alguém pode me aconselhar sobre como permitir que funções FTP do PHP funcionem além de deletar arquivos usando a função unlink() do PHP?

    
por Mike Moore 19.05.2010 / 23:08

2 respostas

6

Por isso, você precisa da permissão 'write' para excluir arquivos. Você tem algumas opções aqui.

  1. chwon / var / www / meusite / carrega para www-data: mike e chmod para 775 (rwxrwxr-x)
  2. Crie um grupo de ftp-write e chown / var / www / meusite / uploads para www-data: ftp-write e chmod para 775
  3. apenas chmod para 775 (rwxrwxr-x) e deixe o microfone como parte do grupo www-data
  4. define um acl na pasta para o microfone com setfacl -m user:mike:rwx
  5. Crie um grupo de gravação de ftp, adicione o microfone e o grupo (assim como qualquer outro usuário que precise dessas permissões com setfacl -m group:<ftp_group>:rwx
por 20.05.2010 / 01:49
0

As permissões do sistema de arquivos devem ser suficientes para corrigir o problema. Tente algo como chmod o + rw no diretório de uploads SOMENTE. O comando chmod efetivamente diz "dê a qualquer um que não esteja no grupo de dados www permissões de leitura e gravação".

A correção a longo prazo, no entanto, seria usar uma conta de serviço para o script que chama o FTP e agrupar essa conta de serviço específica com www-data.

    
por 20.05.2010 / 01:47