Problemas de permissão FTP e Apache


10

Estou tendo problemas com relação a qual usuário deve possuir meu diretório www - ftp ou apache? Quando definido como usuário ftp, o usuário pode adicionar, remover e modificar facilmente arquivos, mas as ações do sistema de arquivos php geram erros de permissão negada (é claro, porque eles exigem que o usuário seja apache). Se, no entanto, o diretório www for chown to apache, o ftpuser não poderá executar algumas ações, como modificação e exclusão de arquivos. Alguém já encontrou um problema semelhante? Qual é a correção? obrigado

Respostas:


12

É para isso que servem os grupos.

Você pode adicionar o ftpusuário ao apachegrupo e vice-versa. Ou, melhor ainda, você pode adicioná-los a um terceiro grupo criado especificamente para esse fim.

por exemplo

# groupadd mygroup
# useradd -G mygroup ftp
# useradd -G mygroup apache
# chown -R: mygroup / var / www
# chmod -R g + rw / var / www

Esses comandos fazem o seguinte:

  1. Cria o novo grupo 'mygroup'
  2. Adiciona usuário ftp ao meu grupo
  3. Adiciona usuário apache ao meu grupo
  4. Concede recursivamente a propriedade do grupo ao conteúdo de / var / www / ao mygroup
  5. Concede recursivamente permissões de leitura e gravação em grupo ao conteúdo de / var / www /

Você só precisa garantir que os arquivos adicionados no futuro pertençam ao grupo 'mygroup' e tenham as permissões apropriadas para que o apache e o ftp os leiam / gravem.


3
A combinação " find /var/www -type d -print0 | xargs -0 chmod g+s /var/www" com umask de 002 garantirá que novos arquivos e diretórios em / var / www herdem o grupo e as permissões apropriados para que o grupo tenha acesso r / w. Muitas distribuições Linux agora padrão para um umask de 002 (os mesmos que padrão para criar um novo grupo para cada novo usuário)
— Freiheit

Esta resposta funciona perfeitamente! Mas estou tendo um problema em que o usuário ainda pode exibir todos os outros diretórios externos. var/wwwExiste um método para restringir isso?
— Maxsme # 1515

3
As linhas 2 e 3 não funcionarão se os usuários já existirem (no CentOS 7). Nesse caso, use usermodegusermod -G mygroup ftp
— nick

Simples, auto-explicativo, compreensível! Perfeito! Obrigado, @hobodave!
— GTodorov

4

A maior parte do seu conteúdo deve pertencer a um usuário que não seja o apache. Supondo que você use o FTP para atualizar seu conteúdo, você pode definir todos os arquivos pertencentes ao ftp: apache. Eu sugeriria usar SCP para SFTP em vez de ftp. Os arquivos devem ter permissões 644 ou 640 e permissões de diretórios 755 ou 750.

Para arquivos e diretórios, o aplicativo precisa gravar para adicionar acesso de gravação em grupo.


0

Eu tive um problema semelhante com uma página php criada que copiava uma pasta no servidor com um nome diferente. Corrigi-o desativando o modo de segurança php.


2
O modo de segurança do PHP existe por um motivo. Desligá-lo não é uma boa ideia.
— precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.