Você já viu um administrador de sistemas cometer o erro clássico de logar como root diretamente em uma produção crítica? A estatística não mente: a maioria dos incidentes de segurança graves em ambientes Linux não vem de hackers externos sofisticados, mas de erros humanos internos ou má configuração de permissões. Manter a conta root ativa e acessível via senha para tarefas do dia a dia é como deixar a chave-mestra da casa debaixo do tapete, visível para qualquer visitante.
No universo da administração de servidores Linux, a separação de responsabilidades não é apenas uma boa prática; é uma necessidade operacional. Ao configurar um novo ambiente, seja em uma VPS dedicada ou em um container Docker, o primeiro passo lógico deve ser a criação de um usuário comum com privilégios elevados controlados. Este tutorial vai além do comando básico. Vamos explorar como criar um usuário com sudo de forma segura, garantindo que cada ação crítica seja auditada e que a integridade do sistema permaneça intacta.
Por que evitar o uso direto de root?
Muitos iniciantes acreditam que usar sudo é apenas uma burocracia. Na realidade, ele serve como uma camada de segurança essencial conhecida como "defense in depth" (defesa em profundidade). Quando você opera como root, não há distinção entre um comando legítimo e um erro de digitação catastrófico. Um rm -rf / acidental, sem confirmação ou contexto de usuário, pode derrubar sua infraestrutura em segundos.
Além disso, o uso do sudo permite a criação de um log preciso. Cada comando executado com privilégios elevados é registrado no arquivo /var/log/auth.log. Isso significa que, se algo der errado, você pode rastrear exatamente quem executou qual comando e quando. Sem essa trilha de auditoria, a responsabilidade fica difusa, especialmente em equipes onde múltiplas pessoas têm acesso ao servidor.
Outro ponto crucial é a revogação de acesso. Se um desenvolvedor ou administrador deixar a empresa, remover o usuário comum é trivial. Revogar o acesso de uma conta root que foi usada diretamente em dezenas de máquinas requer mudanças de senha em todos os locais, o que é propenso a erros e esquecimentos. Com o sudo, você centraliza o controle de acesso.
Passo a passo para criar usuário e atribuir permissões
Para começar, você precisará de acesso inicial ao seu Ubuntu Server. Isso geralmente é feito via SSH com o usuário root ou um usuário existente com privilégios administrativos. Vamos dividir o processo em etapas claras para garantir que nada seja esquecido.
1. Criando o novo usuário
O primeiro comando a ser executado é o adduser. Diferente do useradd, que é um binário de baixo nível, o adduser é um script Perl interativo mais amigável que cria automaticamente um diretório home e configura permissões básicas.
- Execute o comando:
sudo adduser novo_usuario - O sistema solicitará uma senha forte. Evite senhas óbvias como "123456" ou o nome do servidor.
- Preencha as informações opcionais (Nome completo, telefone, etc.). Pressione Enter para confirmar se quiser deixar em branco.
É altamente recomendável ativar a autenticação por chaves SSH para este novo usuário imediatamente. Copie a chave pública do seu computador local para o servidor usando o comando ssh-copy-id. Isso permite que você desative a login por senha no futuro, protegendo contra ataques de força bruta.
2. Adicionando o usuário ao grupo sudo
No Ubuntu e em outras distribuições baseadas em Debian, a maneira mais segura e padronizada de conceder privilégios administrativos é adicionar o usuário ao grupo sudo. Historicamente, existia o grupo wheel, mas no ecossistema Debian/Ubuntu, o grupo sudo é o padrão.
Use o comando usermod para adicionar o usuário ao grupo:
sudo usermod -aG sudo novo_usuario
O parâmetro -a (append) é crucial. Sem ele, você substituiria as listas de grupos do usuário, removendo-o de outros grupos aos quais ele possa pertencer. O parâmetro -G especifica os grupos suplementares. Após executar este comando, o novo privilégio só será efetivo após o próximo login do usuário ou após reiniciar a sessão SSH.
Configurando o Sudoers corretamente
Aqui é onde a maioria dos tutoriais simplistas falha. Apenas estar no grupo sudo concede acesso irrestrito a todos os comandos como root. Isso pode ser perigoso se o usuário for leigo ou se você estiver seguindo o princípio do menor privilégio.
O arquivo de configuração central é o /etc/sudoers. Nunca edite este arquivo diretamente com um editor de texto comum, como o nano ou vim, sem as ferramentas adequadas. Se você cometer um erro de sintaxe (como uma vírgula faltando ou um caractere inválido), o comando sudo entrará em modo de falha segura e ninguém conseguirá usar privilégios administrativos, incluindo você. Isso pode resultar em lockout total do servidor.
A ferramenta correta é o visudo. Ela abre o arquivo no editor padrão (geralmente nano ou vim), verifica a sintaxe antes de salvar e protege o arquivo contra escritas simultâneas.
Dica Pro: Sempre execute o comando visudo com sudo: sudo visudo. Isso garante que você tenha permissão de escrita para salvar as alterações após a verificação de sintaxe.
Personalizando privilégios (Opcional)
Se você não deseja que o novo usuário tenha acesso total, pode criar uma regra específica no final do arquivo /etc/sudoers ou, preferencialmente, criar um arquivo separado em /etc/sudoers.d/. Por exemplo, para permitir que um usuário reinicie serviços de web server sem precisar de senha (um trade-off comum em ambientes de automação, mas arriscado em interativos):
Crie o arquivo: sudo visudo -f /etc/sudoers.d/novo_usuario
Adicione a linha:
novo_usuario ALL=(ALL) NOPASSWD: /usr/sbin/service nginx restart
Isso limita o poder do usuário a uma única ação. Para a maioria dos administradores gerais, no entanto, manter a configuração padrão do grupo sudo é suficiente, desde que o acesso SSH esteja protegido por chaves.
Melhores práticas de segurança e administração
Criar o usuário é apenas o início. A segurança é um processo contínuo. Após configurar seu Ubuntu Server com um novo administrador, considere implementar as seguintes camadas de proteção.
1. Desabilitar login SSH do root
Uma vez que você confirmou que o novo usuário consegue logar e executar sudo perfeitamente, desative o acesso direto ao root via SSH. Edite o arquivo /etc/ssh/sshd_config.
- Encontre a linha
PermitRootLogin. - Altere para:
PermitRootLogin no - Reinicie o serviço SSH:
sudo systemctl restart sshd
Isso força todos os usuários a logarem como seus próprios identidades e elevarem privilégios via sudo, garantindo a auditoria mencionada anteriormente.
2. Ativar a Autenticação de Dois Fatores (2FA)
Senhas e chaves SSH são fortes, mas não infalíveis. A instalação do Google Authenticator PAM module adiciona uma camada extra de segurança. Mesmo que alguém roube sua chave SSH ou senha, ela não poderá acessar o servidor sem o código temporário do seu celular.
3. Atualizações Automáticas
Instale e configure o unattended-upgrades. Ele garante que patches de segurança críticos sejam aplicados automaticamente, reduzindo a janela de exposição a vulnerabilidades conhecidas.
4. Monitoramento de Logs
Não confie apenas nos logs locais. Configure um serviço de centralização de logs ou use ferramentas como Fail2Ban para bloquear IPs que tentam acessos falhos repetidamente. O Fail2Ban pode monitorar os logs de autenticação e banir automaticamente endereços IP suspeitos.
Comparativo: Abordagens de Acesso
| Método | Nível de Segurança | Auditoria | Complexidade |
|---|---|---|---|
| Login Direto como Root | Baixo | Média (apenas logs do sistema) | Baixa |
| Sudo Padrão (Grupo Sudo) | Alto | Alta (registro de cada comando) | Baixa/Média |
| Sudoers Customizado | Muito Alto | Alta (controle granular) | Média/Alta |
| SSH Keys + Sudo + 2FA | Máximo | Alta | Alta |
Como você pode ver na tabela, a combinação de boas práticas maximiza a segurança sem comprometer excessivamente a produtividade.
Perguntas frequentes
Posso usar useradd em vez de adduser?
Embora o useradd funcione, ele é menos amigável. O adduser cria automaticamente o diretório home, copia arquivos de configuração do skeleton directory e pede uma senha interativa. O useradd requer comandos adicionais para criar o home (-m) e definir a senha, aumentando o risco de erros de configuração.
O que acontece se eu esquecer minha senha sudo?
Se você perdeu o acesso ao root e ao usuário sudo, a recuperação depende da sua capacidade de acessar o console físico ou o painel de controle da sua VPS. A maioria dos provedores de cloud oferece um "Recovery Mode" ou acesso via consola serial que permite montar o disco e redefinir senhas ou remover usuários. Sempre mantenha um método de acesso de emergência configurado.
É seguro compartilhar a senha do sudo entre membros da equipe?
Nunca compartilhe senhas. A segurança do sudo depende da identidade única do usuário. Se todos usam a mesma conta, você perde a capacidade de saber quem executou o comando deletor. Cada membro da equipe deve ter seu próprio usuário Linux com suas próprias chaves SSH e sua própria senha.
Como verifico quais comandos um usuário pode executar com sudo?
Logue como o usuário em questão e execute o comando sudo -l. A lista será exibida na tela, mostrando exatamente quais binários podem ser chamados com privilégios elevados e se há restrições de host ou variáveis de ambiente.
O sudo funciona em distribuições diferentes do Ubuntu?
Sim, o sudo é um padrão POSIX amplamente adotado. No entanto, o grupo padrão pode variar. Em sistemas RHEL/CentOS/Fedora, o grupo costuma ser wheel. Em Debian/Ubuntu, é sudo. Verifique sempre a documentação da distribuição específica ao configurar permissões.
Conclusão
Aprender a criar usuário com privilégios controlados no Ubuntu Server é um dos primeiros passos essenciais para qualquer profissional de TI ou dono de negócio que deseja manter sua infraestrutura robusta e segura. O uso do sudo não é apenas uma conveniência; é a espinha dorsal da governança de sistemas Linux modernos.
Ao evitar o login direto como root, você cria uma barreira contra erros catastróficos e estabelece uma trilha de auditoria clara. Seguir as etapas descritas — criar o usuário, adicioná-lo ao grupo sudo, configurar o arquivo sudoers com cuidado e desativar o login remoto do root — transforma seu servidor de um alvo vulnerável em um ambiente profissional e resiliente.
Lembre-se: segurança não é um produto que se compra, mas um processo que se implementa diariamente. Comece hoje revendo as contas de acesso do seu servidor. Se você precisa de ajuda para hardenizar sua infraestrutura ou migrar seus serviços para um ambiente mais seguro e escalável, a equipe da Toda Solução está pronta para auxiliar na gestão de sua infraestrutura cloud e servidores dedicados.