Permitir acesso mundial ao diretório sob o diretório 0750

2

Eu prefiro manter meu diretório /home/dotancohen/ como permissões 0750 . No entanto, eu preciso do Apache para acessar /home/dotancohen/someProject/public_html/ . Eu sei que eu poderia configurar o diretório home como 0755 e todos os subdiretórios além de ~/someproject/ as ___0 , mas isso é uma dor. Como posso permitir que o Apache acesse o diretório ~/someproject/public_html/ , mas mantenha o diretório home como 0750 ?

Eu tentei fazer um link simbólico de /war/www/someProject para /home/dotancohen/someProject/ , mas, de qualquer forma, o Apache não passou da barreira 0750 em /home/dotancohen/ . Eu suponho que eu poderia adicionar o www-data user (Apache) ao grupo dotancohen , mas eu sinto que isso está dando muito poder.

Alternativamente, eu poderia manter os arquivos da web em /var/www/someProject/ , mas devido a outras razões, prefiro mantê-los sob meu diretório pessoal.

    
por dotancohen 04.08.2013 / 11:57

1 resposta

3

Existem algumas opções diferentes disponíveis para você. Aqui estão os que eu posso pensar; cada um tem seus próprios méritos e desvantagens.

  • Você pode definir o mundo para executar bit nos diretórios pai. Dessa forma, qualquer um que conheça o caminho completo para um arquivo poderá acessá-lo, mas ninguém mais poderá. Isso ainda deixa arquivos conhecidos em disputa, a menos que você os proteja com permissões mais restritivas (coisas como ~ / .bashrc, ~ / .gnupg, ~ / .Xauthority e assim por diante podem ser de interesse para um invasor, então seria necessário suas permissões apertadas).

  • Você pode aproveitar as ACLs para fazer a mesma coisa com mais granularidade, por exemplo, somente permitindo que o usuário ou grupo de www-data execute acesso aos diretórios, leia / execute o acesso a qualquer diretório que o servidor da web precise fornecer uma listagem de conteúdo e acesso de leitura aos arquivos que ele deve servir.

  • Você pode adicionar o usuário www-data ao grupo dotancohen e depois revogar as permissões do grupo em tudo, exceto o que você deseja que o Apache possa acessar. Essa é provavelmente a abordagem mais fácil que abre o mínimo possível, mas fica mais complicado se você já estiver usando permissões de grupo para outra finalidade.

  • Ou, como você disse, você poderia mover os arquivos veiculados publicamente para fora do seu diretório pessoal. Esta é definitivamente a configuração mais fácil de acertar em termos de permissões, e é certamente a escolha que eu faria a menos que haja alguma razão convincente para não fazê-lo. Dependendo da sua configuração e necessidades específicas, pode até ser prático usar as permissões 0750 ou 0770 em uma raiz pública com propriedade apropriada, o que restringiria o acesso somente a você e ao servidor web. O próprio proprietário, o grupo www-data e as permissões 0710 em toda a árvore de diretórios provavelmente seriam o mais próximo possível, mas significa que o servidor da Web deve saber o nome completo de todos os arquivos acessados nesse diretório.

Como um aparte, convém considerar a migração para / srv em vez de / var.

    
por 04.08.2013 / 12:56