Permissões do Debian para o servidor apache

2

Estou tentando configurar meu servidor apache no Debian 7. Eu tenho a seguinte configuração: Todo usuário do Linux tem uma pasta no diretório / home. Em seu diretório de usuários, eles têm um diretório www. Então, o diretório raiz do apache é / home / bob / www / Minha pergunta é: qual permissão devo definir para o diretório www? Até agora, adicionei o usuário www-data a cada grupo de cada usuário (digamos, se eu tenho usuários bob e pete, www-data é membro de ambos os grupos bob e pete) e defino suas permissões de diretório-raiz para 774 Esse é o jeito certo de fazer?

Obrigado antecipadamente

    
por William Northern 23.02.2014 / 21:05

1 resposta

0

Primeiro, há uma consideração importante que afeta as maneiras de abordar a configuração necessária:

  1. O Apache servirá apenas conteúdo estático desses locais (isso significa que não há sites "dinâmicos" que permitem o upload nem sites semelhantes ao CMS que gravam seus próprios arquivos de registro ou arquivos temporários, etc.).

    Neste caso, o acesso somente leitura para o Apache é OK.

  2. Os usuários desejam executar sites dinâmicos ( CGI e mais coisas avançadas).

    Nesse caso, você precisa fazer alguns lugares nas hierarquias graváveis pelo Apache.

Agora existem as possibilidades:

  • Apenas torne as hierarquias necessárias legíveis (e percorríveis - para diretórios) para todos.

    Obviamente, isso só funciona para conteúdo somente leitura (e, portanto, estático).

    Nesse caso, apenas certifique-se de que os diretórios a serem atendidos tenham a=rx de permissões e os arquivos neles tenham a=r permissões - ou seja, usuários que não pertencem ao grupo e usuário proprietário têm permissão para percorrer os diretórios e ler arquivos neles.

    Observe que isso tornará o material "exportado" legível para todos, não apenas para o Apache, e isso pode representar um problema de segurança.

  • Como o wiki do Apache sugere , crie um grupo separado, faça o Apache rodar com seu GID e faça com que este grupo tenha o apropriado acesso (R / O ou R / W, quando aplicável) aos recursos.

    Por uma questão de fato, o Debian já tem esse grupo, www-data , então você pode adicionar seus usuários a esse grupo. Uma desvantagem óbvia é que eles obterão automaticamente acesso a outros recursos pertencentes ao grupo www-data .

  • Use a separação de privilégios usando mpm-itk ou alguma outra abordagem. Isso permite que você forneça informações por usuário com privilégios por usuário (o processo do gerenciador do apache é executado como root , mas os processos de trabalho gerados são executados com credenciais dos usuários especificados.

    Não sei se isso funcionaria bem com mod_userdir .

  • Considere o uso de ACLs POSIX para implementar controles de acesso mais detalhados para esses diretórios.

por 24.02.2014 / 09:04