Limitar o acesso do usuário à pasta inicial no Linux [duplicado]

1

Eu tenho um servidor web executando o 10.04 LTS e como um novato no mundo da administração do servidor, estou em uma ligação.

Peço gentilmente que não desvie a pergunta. Estou consciente de que tenho algumas coisas erradas, como ter o root ativado, mas não é por isso que estou postando aqui. Obrigado = D

Situação

Neste momento, tenho três usuários. Root, que obviamente tem acesso a tudo, e dois outros usuários que possuem um site.

Para esses dois usuários, o site deles está localizado em sua respectiva pasta base em uma pasta extra em que cada um deles possui as opções Ler, Escrever e & Executar permissões em. Esta é a única pasta na qual eles podem escrever. Eles não podem excluí-lo nem alterar nada fora da pasta.

Até agora tudo bem, exceto que, por padrão, eles também podem ler qualquer arquivo no sistema, o que significa que eles podem navegar para as pastas dos outros sites e ler, por exemplo, as senhas de banco de dados dos arquivos de configuração do WordPress. >

Isso é obviamente problemático.

Os usuários acessam seus arquivos e pastas por meio do SSH com o FileZilla.

Pergunta

  • Como posso evitar que esses usuários leiam dados confidenciais, por exemplo, como posso restringir o acesso deles somente a sua pasta pessoal?

Requisitos

  1. Os usuários devem continuar a fazer login por meio do SSH com o FileZilla (ou seja, sem soluções de FTP)

  2. O Apache ainda deve poder acessar as pastas do usuário (ou seja, não pode chmod para 750)

Problemas conhecidos

  • A pasta contendo as ferramentas de linha de comando (/ bin / bash eu acho) provavelmente terá que ser ligada por links simbólicos na pasta pessoal do usuário? Por favor, explique como fazer isso.

Se você tiver uma resposta, agradeceria se pudesse escrevê-la de uma forma que pressupõe que eu não saiba nada sobre a linha de comando. Eu sou como esses usuários que não sabem copiar e colar um arquivo no Windows, exceto com a linha de comando no Linux T_T

Obrigado = D

    
por Etienne Levesque Guitard 29.08.2011 / 18:10

1 resposta

1

Não mantenha as configurações do banco de dados legíveis para o mundo. Limite-os ao usuário e / ou grupo www-data . Na verdade, limite todos os diretórios base a seus proprietários e o grupo www-data .

chgrp -R www-data /home/user
chmod -R u=rwX,g=rXs,o= /home/user

(O g=s bit fará todos os arquivos recém-criados herdarem o grupo www-data .) Também defina o umask padrão (em /etc/profile ou via PAM) como 027 , que nega acesso a "outros" por padrão.

Claro, isso é fácil de contornar. Basta escrever uma página da Web (PHP ou similar) que leia as configurações dos outros usuários. Uma solução melhor seria instalar suPHP , o que torna as páginas da Web CGI executadas na conta do proprietário; com suPHP você não precisa da propriedade do grupo www-data - basta limitar todos os arquivos ao seu proprietário ( u=rwX,go= ). No entanto, isso pode introduzir uma falha de segurança diferente: o WordPress agora teria permissões de gravação para todo o site, e considerando o histórico de segurança do WP, isso é ruim.

Quanto ao resto do sistema - /var , /usr , /etc - a maior parte não é não sensível. As partes que estão, já estão protegidas por permissões padrão. Não se incomode em esconder o resto.

    
por 29.08.2011 / 18:30