Restringir o acesso do usuário no linux

6

Estou criando um novo usuário com os seguintes detalhes:

useradd -d /var/www/html/testuser.com -G users testuser

Eu procedo criando uma nova senha para o usuário e tento fazer o login via SSH, eu chego em /var/www/html/testuser.com mas ainda posso voltar aos diretórios. Eu quero restringir as permissões do usuário para que eles possam gerenciar apenas o conteúdo dentro do testuser.com e sibblings (para que eles possam fazer todas as operações normais), eu não quero que o usuário seja capaz de navegar de volta nos diretórios e efetivamente ter raiz Acesso.

    
por Jorg Ancrath 13.06.2014 / 23:20

3 respostas

5

Os usuários não "efetivamente têm acesso root" apenas porque podem navegar em outros diretórios. Todos os usuários com acesso ao shell podem navegar pela instalação do software - afinal, essa informação não é confidencial, já que ela pode ser baixada de qualquer número de sites. Se houver diretórios que você não queira expor a todos os usuários do shell, dê a eles permissões restritivas apropriadas.

Se você quiser ter uma segunda camada de segurança, poderá tornar as contas mais restritas. Se você quiser permitir que esses usuários naveguem, carreguem e façam download de arquivos em /var/www/html/testuser.com , não forneça uma conta de shell, dê a eles uma conta restrita que só pode usar SFTP. Você pode especificar opções para uma conta específica em sshd_config com um bloco Match . (Coloque isso no final do arquivo, pois a diretiva Match se estende até a próxima diretiva Match ou até o final do arquivo.)

Match User testuser
    Force-command internal-sftp
    ChrootDirectory /var/www/html/testuser.com

Se você quiser permitir que os usuários usem mais alguns comandos, como scp e rsync, mas não o acesso geral ao shell, use rssh ou scponly como o shell em sua conta, e instale e configure rssh ou scponly para especificar quais comandos você deseja permitir (veja Você precisa de um shell para o SCP? ).

Se você quiser fornecer uma conta de shell que permita apenas a execução de alguns programas na lista de permissões, faça o shell deles com shell restrito . Observe que esses usuários poderão acessar arquivos fora de seu diretório inicial, com base em permissões de arquivos.

Se você quer dar acesso total ao shell, mas tornar tudo que não seja o diretório home invisível, então você precisa criar alguma forma de prisão . A forma mais fraca de prisão é a junta chroot , que restringe o usuário a uma ramificação da árvore de diretórios. Restringir um usuário a um chroot é fácil de especificar ChrootDirectory in sshd_config ; no entanto, como o usuário não pode sair da cadeia, o diretório deve conter todos os programas que o usuário usará e seus dados. Você pode usar montagens de ligamento para tornar visíveis alguns diretórios (por exemplo, /usr ) dentro da cadeia.

    
por 15.06.2014 / 23:44
2

Dê uma olhada em man 5 sshd_config na opção ChrootDirectory .

    
por 14.06.2014 / 00:23
-1

Você pode alterar as permissões de /var/www/html para que somente o root possa visualizar / modificar os arquivos / pastas.

Como:

chown root:root  /var/www/html
    
por 28.09.2014 / 23:41