rbash: saiba como limitar usuário ao seu diretório no Linux

rbash-saiba-como-limitar-usuario-ao-seu-diretorio-no-linux

Com o rbash ( Restricted Bash) o administrador confina o usuário em seu diretório e assim impedir que ele navegue em outros diretórios. Você tem usuários efetuando login no seu sistema Linux. Esses usuários podem não ter direitos de sudo, mas possivelmente podem ter liberdade para vasculhar a maior parte da árvore de diretórios do sistema. Você não quer isso. Por quê? Embora esses usuários possam não conseguir editar a grande maioria dos seus arquivos de configuração, você certamente não deseja que eles os visualizem. O mesmo vale para os dados do seu cliente – você quer isso bloqueado.

Mas como você evita que os usuários possam acessar sua hierarquia de diretórios sem precisar ajustar as permissões de todos os arquivos e pastas do sistema, o que poderia complicar seriamente as coisas?

Como usar o rbash para limitar usuário ao seu diretório

Uma maneira é empregar uma ferramenta chamada Restricted Bash (rbash). Com o rbash, você pode impedir que um usuário:

  • Usando o comando cd
  • Modificando os valores de $ PATH, $ SHELL, $ BASH_ENV ou $ ENV
  • Executando programas que contêm um /
  • Redirecionando a saída usando>,> |, <>,> &, &> e >>
  • Saia do modo restrito dentro de scripts
  • Desativar o modo restrito

O que você precisará para implemetar o rbash

  • Uma instância em execução do Linux
  • Um usuário com privilégios sudo
  • Como criar um usuário de teste

Vamos criar um usuário de teste em um sistema. Vamos chamar esse usuário de vega. Queremos criar o usuário de forma que seu shell seja rbash. Isso é feito com o comando:

Terminal
sudo useradd -m vega -s / bin / rbash

Você precisará fornecer uma senha ao novo usuário com o comando:

Terminal
sudo passwd vega

Quando solicitado, digite e verifique uma senha para o novo usuário.

Como criar um diretório do usuário

Agora vamos criar um diretório para o novo usuário que abrigará os únicos comandos que o usuário pode executar. Digamos, por exemplo, que queremos permitir que o usuário emita os comandos mkdir, ls e ssh. Primeiro vamos criar o diretório com o comando:

Terminal
sudo mkdir /home/vega/bin

Em seguida, criaremos links nesse diretório recém-criado para os comandos que o usuário pode executar (novamente mkdir, ls e ssh). Para fazer isso, emita os comandos:

Terminal
sudo ln -s / bin /mkdir/ home/vega/bin
sudo ln -s /bin/ls/home/vega/bin
sudo ln -s /bin /ssh /home/vega/bin

Como impedir a modificação do perfil de usuário no Linux

Agora precisamos garantir que o novo usuário não possa modificar o arquivo .profile. Antes de podermos alterar as permissões e a propriedade do .profile, você precisará fazer login como usuário, para que o arquivo seja criado. Depois de fazer login, efetue logon e logon novamente como um usuário com privilégios sudo.

Altere a propriedade e as permissões do arquivo com os comandos:

Terminal
sudo chown root.  /home/vega/.profile
sudo chmod 755 /home/vega/.profile

Tentando o uso do rbash no Linux

Efetue login no servidor com a conta vega e emita o comando:

Terminal
cd

Você deve ser informado de que está impedido de usar o comando cd (imagem abaixo).

rbash

Não há dados com o comando cd. Você pode tentar qualquer comando que quiser, mas apenas mkdir, ls e ssh funcionarão para o usuário vega. E é assim que você pode restringir fortemente os usuários em um sistema Linux com rbash. Essa é uma maneira realmente útil de controlar quais comandos seus usuários podem executar e como eles podem se mover dentro da estrutura de diretórios.

Existem outras soluções para restringir o usuário, as quais são abordadas nos links abaixo:

Acesse a versão completa
Sair da versão mobile