SSH & Avançado 41 visualizações

Como limitar quais comandos um usuário pode rodar via SSH usando um shell restrito

Ver no WHMCS

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.

  1. 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.

  2. Edite o arquivo de shell do usuário

    Abra o terminal e digite:

    sudo nano /etc/passwd

    Procure 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/rbash

    Salve com Ctrl + O, confirme com Enter, e saia com Ctrl + X.

  3. Restrinja comandos com um script personalizado

    Como o rbash ainda permite alguns comandos, vamos criar um script que ele só pode executar. Crie um arquivo chamado restricted.sh na pasta do usuário:

    sudo nano /home/usuario/restricted.sh

    Adicione 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."
    fi

    Salve e saia.

  4. Defina o shell como esse script

    Volte ao arquivo /etc/passwd novamente:

    sudo nano /etc/passwd

    Altere o shell do usuário para:

    usuario:x:1001:1001::/home/usuario:/home/usuario/restricted.sh

    Salve e saia.

  5. 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:

    ls

    Se tudo estiver certo, ele mostrará o conteúdo da pasta. Tente rm ou sudo — você verá a mensagem “Comando não permitido”.

Importante: o que você NÃO pode fazer

  • Não é possível usar sudo em 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).

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.