Aprenda a criar usuário com sudo no Debian, Ubuntu e Proxmox VE, configurar regras no sudoers.d, cadastrar chave SSH e remover acessos com segurança.

Para que serve

Trabalhar o tempo todo como root é arriscado: qualquer erro de digitação vale para o sistema inteiro e não fica registrado quem fez o quê. O recomendado é ter um usuário nominal para cada pessoa que administra o servidor, com permissão de usar o sudo quando precisar de privilégios. Este artigo mostra como criar usuário com sudo para cada pessoa, liberar permissões específicas com segurança e remover acessos quando alguém sai da equipe.

Pré-requisitos

  • Acesso de root ao servidor (SSH ou console IPMI/iLO).
  • Debian 12/13, Ubuntu 24.04 ou Proxmox VE 8/9.
  • A chave pública SSH de cada pessoa (por exemplo, o conteúdo de ~/.ssh/id_ed25519.pub no computador dela).

Passo a passo para criar usuário com sudo

1. Instalar o sudo (se necessário)

No Debian instalado com senha de root e no Proxmox, o pacote sudo pode não vir instalado. Confira e instale:

apt update
apt install sudo

2. Criar o usuário

No Debian e Ubuntu, prefira o adduser: ele cria o diretório pessoal, copia os arquivos padrão e pede a senha de forma interativa.

adduser maria

Os campos de nome completo, telefone etc. são opcionais; pode apenas pressionar Enter. O useradd também existe, mas é a ferramenta de baixo nível: sem as opções certas (-m -s /bin/bash), ele cria um usuário sem diretório pessoal e com shell limitado.

3. Dar permissão de sudo

No Debian e no Ubuntu, quem está no grupo sudo pode executar qualquer comando como root, informando a própria senha:

usermod -aG sudo maria

O -a é importante: sem ele, o usuário é removido de todos os outros grupos secundários. A nova permissão só vale em uma nova sessão (saia e entre de novo).

4. Regras específicas com sudoers.d

Para dar permissões limitadas, crie um arquivo em /etc/sudoers.d/ usando sempre o visudo, que valida a sintaxe antes de salvar. Um erro de sintaxe nesse arquivo pode deixar o sudo inutilizável para todos.

visudo -f /etc/sudoers.d/deploy

Exemplo: permitir que o usuário deploy reinicie só o Nginx, sem senha:

deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx

Regras importantes:

  • O nome do arquivo não pode ter ponto nem terminar em ~, ou será ignorado.
  • Use sempre o caminho completo do comando (descubra com command -v systemctl).
  • Evite NOPASSWD: ALL para pessoas. Se a conta for comprometida, o invasor vira root sem esforço. Reserve NOPASSWD para comandos específicos de automação.
  • Não edite /etc/sudoers diretamente; use os arquivos em sudoers.d, que sobrevivem às atualizações.

5. Configurar a chave SSH do usuário

install -d -m 700 -o maria -g maria /home/maria/.ssh
nano /home/maria/.ssh/authorized_keys     # cole a chave pública, uma por linha
chown maria:maria /home/maria/.ssh/authorized_keys
chmod 600 /home/maria/.ssh/authorized_keys

Se a pessoa já tiver acesso por senha, ela mesma pode enviar a chave a partir do computador dela com ssh-copy-id maria@IP-DO-SERVIDOR.

Antes de bloquear o root no SSH: mantenha a sessão de root aberta e, em outra janela, teste o login do novo usuário e o sudo -i. Só depois ajuste o SSH (por exemplo, PermitRootLogin no) e recarregue o serviço. Se algo der errado, o console IPMI/iLO continua permitindo entrar como root localmente.

6. Proxmox VE: usuário do Linux x usuário da interface web

Criar um usuário no Linux não dá acesso automático à interface web do Proxmox. Para isso, cadastre-o no realm pam e atribua um papel:

pveum user add maria@pam
pveum acl modify / --users maria@pam --roles Administrator

Ou pela interface: Datacenter > Permissions > Users > Add (realm Linux PAM) e depois Permissions > Add > User Permission. Para quem só opera VMs, use papéis mais restritos, como PVEVMUser ou PVEVMAdmin, aplicados apenas ao caminho da VM ou do pool. Ative também o 2FA (TOTP) em Datacenter > Permissions > Two Factor; veja também o artigo «Como ativar autenticação em dois fatores (2FA) no SSH, Proxmox, Windows e painéis».

7. Bloquear e remover usuários

usermod -L -e 1 maria            # bloqueia senha e expira a conta (reversível)
deluser --remove-home maria      # remove o usuário e o diretório pessoal

Bloquear a senha não impede login por chave SSH; por isso, ao desligar alguém, apague também o authorized_keys ou use a expiração da conta (-e 1), que bloqueia os dois. No Proxmox, remova também o usuário em Datacenter > Permissions > Users.

Como saber se funcionou

id maria                 # deve listar o grupo sudo
sudo -l -U maria         # mostra o que o usuário pode executar
su - maria -c 'sudo whoami'   # deve responder: root

Os usos do sudo ficam registrados no journal: journalctl _COMM=sudo --since today.

Problemas comuns

  • maria is not in the sudoers file: o usuário não está no grupo sudo ou ainda não abriu uma nova sessão. Confira com id, saia e entre de novo.
  • sudo: command not found: o pacote não está instalado (passo 1).
  • sudo parou de funcionar para todos: provavelmente há erro em um arquivo de /etc/sudoers.d/. Entre como root pelo console e rode visudo -c para achar o arquivo com problema.
  • SSH recusa a chave: confira as permissões (700 na pasta .ssh, 600 no authorized_keys, dono correto) e veja o motivo em journalctl -u ssh -n 50.

Para contas usadas por aplicações e scripts, veja também o artigo «Privilégio mínimo: como criar contas de serviço e permissões seguras no Linux, Proxmox e Windows». Para endurecer o acesso remoto, veja «Como proteger o SSH: chaves ed25519, sem senha, sem root e com fail2ban ou CrowdSec».

Perguntas frequentes

Qual a diferença entre adduser e useradd?

O adduser é interativo e já cria o diretório pessoal, define o shell e pede a senha. O useradd é a ferramenta de baixo nível e precisa de opções como -m -s /bin/bash para chegar ao mesmo resultado.

Como saber se um usuário tem permissão de sudo?

Rode sudo -l -U nome-do-usuario como root. O comando lista tudo o que o usuário pode executar; id nome-do-usuario mostra se ele está no grupo sudo.

Como usar o sudo sem digitar a senha?

Com uma regra NOPASSWD em um arquivo de /etc/sudoers.d/, editado pelo visudo. Use isso só para comandos específicos de automação, nunca NOPASSWD: ALL para pessoas.

O usuário criado no Linux consegue entrar na interface web do Proxmox?

Não automaticamente. Ele precisa ser cadastrado no realm pam com pveum user add e receber um papel em Permissions.

Leitura complementar

Precisa de ajuda?

Se ficou sem acesso administrativo ao servidor, abra um ticket. Lembre-se de que a E-Consulters não faz gerência de servidor: a administração de usuários do sistema é feita por você, mas podemos orientar o caminho de recuperação pelo console.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também