É muito mais difícil impedir um acesso específico do que bloquear por padrão todo o acesso e adicionar exceções específicas para cada tipo de acesso. Existe até um termo atrativo para este princípio . Portanto, certifique-se de que os comandos que podem ser executados via sudo
sejam explicitamente especificados para que o usuário nunca possa se tornar root
usando-o. Depois disso, você tem algumas opções:
-
Restringir permissões de diretório (opção1). Certifique-se de que todos os diretórios no diretório raiz (
/
) no sistema tenham seu bit de execução desativado para os outros permissão grupo. Isso geralmente significa executar algo semelhante ao seguinte:$ chmod o-x <dir>
Faça o mesmo para todos os diretórios onde o acima já foi executado, mas com um grupo ao qual esse usuário é membro (pelo menos o grupo
limited
de acordo com sua pergunta). Isso significa correr:$ chmod g-x <dir>
Essa alteração da permissão de execução do diretório nos principais diretórios de nível superior pode não ser prática: é provável que existam processos importantes que dependem da possibilidade de alterar o diretório (por exemplo,
/
ou/var
) sem nenhuma configuração de permissão elaborada. Mas você poderia fazer isso por pelo menos alguns diretórios privados . -
Use o chroot jail (opção 2). Eu acho que a opção realista é usar um chroot jail para que o usuário obtenha informações em um ambiente restrito imediatamente após o login. Além de configurar o ambiente chroot, o servidor OpenSSH também terá que ser configurado adequadamente. Isso pressupõe que o acesso ao sistema está disponível apenas por
ssh
. Alternativamente, você poderia usar o Jailkit que foi discutido aqui .