Como limitar quais comandos um usuário pode rodar via SSH usando um shell restrito
Olá, viajante do servidor! 🌟 Se você está aqui, é porque quer dar um passo mais seguro e controlado no uso do SSH — talvez para proteger seu ambiente, ou para compartilhar acesso sem abrir todas as portas. Fico feliz que você esteja pensando nisso. Na GeHost, entendemos que segurança e liberdade andam juntas. Vamos juntos, com calma, passo a passo, aprender como restringir comandos via shell restrito — sem complicação, com humanidade e foco no que importa.
Por que restringir comandos no SSH?
Imagine que você compartilha o acesso ao seu servidor com um colaborador. Ele precisa fazer tarefas simples, mas você não quer que ele execute comandos perigosos como rm -rf /, sudo ou systemctl. É aí que entra o shell restrito: ele limita o que o usuário pode fazer, mantendo tudo sob controle.
Dica do Sensei: Nunca dê acesso completo (root) a ninguém que não precise. Um bom hábito é sempre pensar: “E se ele errar?”. A restrição é um abraço de proteção, não um muro.
Passo a passo: Criando um shell restrito no SSH
Vamos usar um método simples e seguro, com base em ferramentas nativas do Linux (como rbash — restricted bash). Este guia é para usuários com acesso SSH e permissão para editar arquivos no servidor.
-
Entre no servidor via SSH
Use seu cliente SSH (como PuTTY, Terminal do Mac ou Linux) com as credenciais do seu usuário no servidor. Lembre-se: não é root, mas um usuário com permissão para editar arquivos.
-
Edite o arquivo de shell do usuário
Abra o terminal e digite:
sudo nano /etc/passwdProcure pela linha do seu usuário (ex:
usuario:x:1001:1001::/home/usuario:/bin/bash). A última parte é o shell padrão —/bin/bash.Altere esse caminho para
/bin/rbash, ficando assim:usuario:x:1001:1001::/home/usuario:/bin/rbashSalve com Ctrl + O, confirme com Enter, e saia com Ctrl + X.
-
Restrinja comandos com um script personalizado
Como o
rbashainda permite alguns comandos, vamos criar um script que ele só pode executar. Crie um arquivo chamadorestricted.shna pasta do usuário:sudo nano /home/usuario/restricted.shAdicione comandos que você quer permitir, por exemplo:
#!/bin/rbash # Comandos permitidos if [[ "$1" == "ls" ]]; then ls -la elif [[ "$1" == "pwd" ]]; then pwd elif [[ "$1" == "whoami" ]]; then whoami else echo "Comando não permitido." fiSalve e saia.
-
Defina o shell como esse script
Volte ao arquivo
/etc/passwdnovamente:sudo nano /etc/passwdAltere o shell do usuário para:
usuario:x:1001:1001::/home/usuario:/home/usuario/restricted.shSalve e saia.
-
Teste o novo shell
Desconecte e reconecte via SSH. Agora, ao digitar um comando como
ls, ele será executado apenas se estiver no script. Tente:lsSe tudo estiver certo, ele mostrará o conteúdo da pasta. Tente
rmousudo— você verá a mensagem “Comando não permitido”.
Importante: o que você NÃO pode fazer
- Não é possível usar
sudoem planos GeHost — não há acesso root. - Não é possível alterar o shell de outros usuários sem permissão de administrador (não disponível em hospedagem compartilhada).
- Se precisar de mais controle, considere usar um servidor dedicado ou VPS — planos GeHost são para hospedagem compartilhada com cPanel.
Atenção do Sensei: Este método é ideal para usuários com acesso SSH e conhecimento básico de linha de comando. Se você não tem certeza, peça ajuda ao suporte da GeHost — estamos aqui para você.
Quer ir além?
Se você quer mais segurança, considere:
- Usar chaves SSH em vez de senhas.
- Limitar acesso por IP (via firewall ou configuração do cPanel).
- Monitorar logs de acesso com ferramentas como
fail2ban(se disponível em seu plano).
Se precisar de ajuda personalizada, entre em contato com o suporte da GeHost pelo painel: painel.gehost.com.br. Estamos aqui para te ajudar com um sorriso no coração. 💚
Se este guia te ajudou, compartilhe com quem também quer aprender com sabedoria. E lembre-se: cada linha de código é uma escolha. Escolha com cuidado.
GeHost — hospedagem com propósito, desenvolvida com carinho por G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04).