A maneira mais fácil de manter os usuários em seus diretórios home em um servidor da web

1

Eu queria saber qual seria a maneira mais fácil e segura em um servidor da Web para impedir que os usuários naveguem em diretórios diferentes de sua pasta pessoal.

Eu tenho um servidor da Web mutualizado com vários usuários e todos eles têm um diretório public_html . Usando PHP, eles poderiam facilmente incluir ou listar arquivos de outros usuários.

Como eu poderia fazê-los pensar que alcançaram a raiz do servidor quando tentaram cd ../ em seu diretório pessoal ou quando eles <?php include('../../otheruser/public_html/config.php'); ?

Eu estava pensando em chroot jail. Existe uma maneira mais fácil usando apenas modos? Apache? Configuração PHP? Outras ferramentas do Linux?

Muito obrigado pela sua ajuda.

Editar: Esqueci de dizer que estou usando o CentOS 6.4 e servidores Debian.

Editar 2: não preciso que os usuários tenham acesso ao shell.

    
por mimipc 29.04.2013 / 14:40

2 respostas

4

Você pode instalar e configurar o suPHP .

suPHP é um módulo do apache que executa os scripts do usuário como seu próprio uid em vez do apache. Como os scripts são executados como seu próprio uid, as permissões de arquivos simples cuidam de mantê-los fora dos diretórios de outros usuários e de qualquer outra coisa a que o usuário do apache tenha acesso.

As permissões do sistema de arquivos também impedem que elas entrem nas pastas de outros usuários a partir do shell. Apenas certifique-se de que os diretórios pessoais não concedam permissões a outros, por exemplo. 770 é bom, 777 ou 775 é ruim.

    
por 29.04.2013 / 15:14
0

O que você está pedindo não é facilmente realizado se você quiser que os usuários tenham acesso ao shell. Pense desta maneira: Você quer que seja capaz de executar ls ? Então você tem que dar o acesso de leitura para / bin / onde ls mora, e eles têm que ser capazes de ler todas as bibliotecas em / lib com as quais o ls está ligado (veja ldd /bin/ls ).

Qual é o propósito de você querer limitar o acesso deles? Se for para impedi-los de examinar os arquivos de outros usuários, certifique-se de que os diretórios iniciais dos outros usuários não tenham permissões para lê-los. Se a razão é que você tem uma desconfiança generalizada de seus usuários, não lhes conceda acesso ao shell em primeiro lugar. Se você puder limitá-los ao sftp, é fácil chroot-los para o seu diretório home.

    
por 29.04.2013 / 17:05