Limitação de permissões de usuário para uma única pasta, ao mesmo tempo em que é acessível pelo usuário do apache

1

Eu tenho um site rodando em Apache no Linux no diretório / var / www.

Este site tem alguns arquivos fora da raiz do diretório web em / var / www-store que são gravados e lidos pelo usuário do apache www-data.

Eu preciso que outro usuário tenha acesso de leitura e gravação a um subdiretório deste arquivo / var / www-store / sync, mas por razões de segurança não quero que eles possam acessar (ler ou escrever) em nenhum arquivo fora deste diretório ou em qualquer outro lugar no sistema de arquivos.

Além disso, os arquivos escritos por esse usuário precisam ser graváveis pelo usuário do apache e vice-versa.

Alguém pode ajudar com as permissões que preciso definir neste usuário e nesses diretórios para fornecer a segurança detalhada acima?

    
por Loftx 08.04.2011 / 09:59

3 respostas

1

Você pode definir a propriedade do grupo no diretório e os arquivos que deseja compartilhar com o usuário e não em nenhum outro lugar no sistema de arquivos?

chown -R apache:[user-name-here] /var/www-store/sync/*

Isso definiria recursivamente a propriedade do grupo no diretório. apache seria o proprietário e seu usuário seria proprietário de um grupo, portanto, você precisaria garantir que o diretório e o arquivo possam ser lidos e gravados em:

chmod ug+rw /var/www-store/sync/*

A linha acima permitiria que o usuário e o proprietário do grupo lessem e gravassem no diretório.

Em seguida, você precisa garantir que o diretório pai também não tenha permissões de leitura ou gravação definidas para todos os usuários. Isso também pode ser feito usando chmod :

chmod o-rw /var/www-store/

Observe que a linha acima não é recursiva ou afetaria a permissão definida anteriormente. Que deve ser tudo que você precisa e se não, pelo menos, você começaria. Aviso: Eu não tentei fazer isso, então não posso dizer que definitivamente funcionará, mas se não for chmod e chown , você deve entrar no caminho até lá. Se você estiver fazendo isso por razões de segurança, provavelmente vai querer testá-lo completamente em outro diretório também, provavelmente é melhor fazer um especificamente para testes.

    
por 08.04.2011 / 10:35
0

Você pode adicionar o outro usuário a um grupo. E, em seguida, conceda a esse grupo acesso de leitura e gravação ao diretório /var/www-store/sync .

chown -R www-data:somegroup /var/www-store/sync
chmod -R 770 /var/www-store/sync
    
por 08.04.2011 / 10:35
0

Se o usuário não precisar de um TTY físico, você pode tentar criar um usuário apenas do sftp e configurar o ChrootDirectory do OpenSSH para o grupo do usuário.

    
por 08.04.2011 / 12:51