Ubuntu Usuários e Grupos

O Linux foi feito para várias pessoas usarem a mesma máquina. Cada pessoa tem um usuário, com sua pasta e seus arquivos. Os grupos juntam usuários que precisam das mesmas permissões, como "quem pode administrar" ou "quem pode ler os logs".

Você vai aprender
  • A ler a saída do id e descobrir de quais grupos você faz parte.
  • Onde o sistema guarda contas e grupos (/etc/passwd, /etc/group, /etc/shadow).
  • A criar, alterar e remover usuários e grupos, com mais de uma forma para cada tarefa.
  • O erro que pode tirar seu acesso de administrador: usermod -G sem o -a.

Usuário, UID e grupo

Para você, um usuário é um nome, como ana. Para o sistema, é um número, o UID (user ID). O nome existe só para facilitar a vida das pessoas.

TipoUIDExemplosPara quê
Superusuário0rootAdministrador com poder total. No Ubuntu, ninguém faz login direto com ele; usa-se o sudo.
Usuários de sistema1 a 999www-data, syslogRodam serviços. Não são pessoas e não fazem login.
Usuários comuns1000 em dianteana, joaoPessoas. Quem instalou o Ubuntu ganhou o UID 1000.

Todo usuário tem um grupo principal. No Ubuntu, ele tem o mesmo nome do usuário. Além disso, o usuário pode participar de vários grupos extras.


Quem sou eu? whoami, id e groups

$ whoami
ana
$ groups
ana adm cdrom sudo dip plugdev users lpadmin

O whoami (who am I, "quem sou eu") mostra o seu usuário. O groups lista os seus grupos. O id mostra tudo isso com os números:

$ id
uid=1000(ana) gid=1000(ana) groups=1000(ana),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),114(lpadmin)
uid=1000(ana)
Seu número de usuário e, entre parênteses, o nome.
gid=1000(ana)
Seu grupo principal (group ID).
groups=…
Todos os grupos de que você participa, com número e nome.

O que alguns desses grupos permitem:

GrupoQuem está nele pode…
sudoUsar o sudo, ou seja, administrar a máquina.
admLer os logs do sistema em /var/log.
lpadminInstalar e configurar impressoras.
plugdevUsar alguns dispositivos removíveis.
cdrom, dipUsar o drive de CD e conexões discadas (herança antiga).

Missão: descubra quem você é nesta máquina fictícia com whoami, id e groups. A Ana pode usar sudo? Qual é o UID dela?


Onde ficam as contas

/etc/passwd: a lista de usuários

Apesar do nome, ele não guarda senhas. Tem uma linha por usuário, com 7 campos separados por :.

$ grep ana /etc/passwd
ana:x:1000:1000:Ana:/home/ana:/bin/bash
ana
1. Nome de login.
x
2. Senha: o "x" diz que ela fica em /etc/shadow.
1000
3. UID.
1000
4. GID do grupo principal.
Ana
5. Nome completo e informações (campo "GECOS").
/home/ana
6. Pasta pessoal.
/bin/bash
7. Shell do login. /usr/sbin/nologin impede o login.

/etc/group: a lista de grupos

$ grep sudo /etc/group
sudo:x:27:ana

Os campos são: nome do grupo, senha (não usada), GID e os membros, separados por vírgula.

/etc/shadow: as senhas

Guarda as senhas na forma de hash, uma "impressão digital" que não pode ser revertida para a senha. Só o root lê esse arquivo:

$ cat /etc/shadow
cat: /etc/shadow: Permission denied
Não edite esses arquivos à mão

Um caractere errado em /etc/passwd, /etc/group ou /etc/shadow pode impedir todo mundo de entrar no sistema. Use os comandos desta página.

Missão: use grep para ver a linha da ana e a do www-data em /etc/passwd. Qual shell o www-data usa? Depois tente ler o /etc/shadow e veja o que acontece.


Quem está usando a máquina: w

$ w
 10:30:00 up  2:31,  1 user,  load average: 0,42, 0,38, 0,35
USUARIO  TTY      DE               LOGIN@   IDLE   JCPU   PCPU  WHAT
ana      tty2     -                08:00    2:30m  0.06s  0.06s /usr/libexec/gnome-session-init-worker ubuntu

A primeira linha diz há quanto tempo a máquina está ligada e quantos usuários estão conectados. Embaixo, cada sessão: o usuário, o terminal (tty2 é a tela gráfica) e o que está rodando. Num servidor, aparecem também as conexões por SSH, com o IP de origem na coluna DE.


Criar um usuário

Daqui em diante, os comandos mudam o sistema e precisam de sudo. Eles não funcionam no simulador.

Forma recomendada: adduser

O adduser é um assistente do Debian e do Ubuntu. Ele cria o usuário, o grupo e a pasta pessoal, copia os arquivos iniciais de /etc/skel e pede a senha.

sudo
Criar contas é tarefa de administrador.
adduser
O assistente.
joao
O nome de login: minúsculas, sem espaços e sem acentos.
$ sudo adduser joao
[sudo: authenticate] Senha:
info: Adicionando usuário 'joao' ...
info: Selecionando UID/GID da faixa 1000 a 59999 ...
info: Adicionando novo grupo 'joao' (1001) ...
info: Adicionando novo usuário 'joao' (1001) com grupo 'joao (1001)' ...
info: Criando diretório pessoal '/home/joao' ...
info: Copiando arquivos de '/etc/skel' ...
Nova senha:                                       « a senha não aparece enquanto você digita
Redigite a nova senha:
passwd: password updated successfully
Modificando as informações de usuário para joao
Enter the new value, or press ENTER for the default
	Nome Completo []: João Lima
	Número da Sala []:
	Fone de Trabalho []:
	Fone Residencial []:
	Outro []:
A informação está correta? [S/n] s
info: Adicionando novo usuário 'joao' a grupos suplementares / extras 'users' ...
info: Adicionando usuário 'joao' ao grupo 'users' ...

Os campos de telefone e sala podem ficar em branco: aperte Enter. Para não ser perguntado, informe o nome já no comando: sudo adduser --comment "João Lima" joao.

Forma "crua": useradd

O useradd existe em todo Linux, mas por padrão faz o mínimo: não cria a pasta, não define shell nem senha. É usado em scripts, com as opções certas:

$ sudo useradd -m -s /bin/bash -c "Maria Silva" maria
$ sudo passwd maria
Nova senha:
Redigite a nova senha:
passwd: password updated successfully
adduser joaouseradd joao
Cria a pasta pessoalSimSó com -m
Shell bashSimSó com -s /bin/bash
Pede a senhaSimNão; use passwd depois
Onde existeDebian e UbuntuTodo Linux
Melhor paraUso manualScripts

Grupos: criar e colocar pessoas

$ sudo groupadd financeiro
$ grep financeiro /etc/group
financeiro:x:1002:                « ainda sem membros

Colocar um usuário num grupo: usermod -aG

sudo usermod
Modifica um usuário (user modify).
-a
Append: acrescenta aos grupos que ele já tem.
-G financeiro
Os grupos extras. Para vários, separe com vírgula: -G financeiro,adm.
joao
O usuário.
$ sudo usermod -aG financeiro joao
$ groups joao
joao : joao users financeiro
Nunca esqueça o -a

Sem o -a, usermod -G financeiro ana substitui todos os grupos extras da ana por "financeiro". Ela sai do grupo sudo e perde o acesso de administrador. Se ela era a única administradora, ninguém mais consegue usar sudo, e a correção exige o modo de recuperação.

Três formas de pôr alguém num grupo

ComandoObservação
sudo usermod -aG grupo usuarioFunciona em todo Linux. Cuidado com o -a.
sudo gpasswd -a usuario grupoAdiciona a um grupo só; não tem o risco do -a.
sudo adduser usuario grupoDo Debian/Ubuntu. Com dois nomes, o adduser não cria conta: adiciona ao grupo.

Para tirar alguém de um grupo: sudo gpasswd -d joao financeiro ou sudo deluser joao financeiro.

A mudança só vale no próximo login

Os grupos são lidos quando a pessoa entra no sistema. Depois de entrar num grupo novo, ela precisa sair da sessão e entrar de novo. Para testar no terminal atual, use newgrp financeiro.


Senhas

ComandoO que faz
passwdTroca a sua senha (pede a atual primeiro).
sudo passwd joaoDefine a senha de outro usuário, sem precisar da antiga.
sudo passwd -l joaoBloqueia a senha (lock). A conta continua existindo.
sudo passwd -u joaoDesbloqueia (unlock).
sudo passwd -e joaoObriga a trocar a senha no próximo login.
chage -l joaoMostra a validade da senha.
$ chage -l ana
Última mudança de senha					: mar 26, 2026
Senha expira					: nunca
Senha inativa					: nunca
…

Remover um usuário

$ sudo deluser --remove-home joao
$ id joao
id: 'joao': não existe tal usuário          « a conta sumiu

O deluser mostra algumas linhas de "info:" enquanto trabalha. Sem --remove-home, a pasta /home/joao continua lá, com os arquivos. Isso é útil quando você quer guardar os dados. O equivalente "cru" é sudo userdel -r joao.

A pasta pessoal some de vez

Antes de usar --remove-home, confira se não há nada importante: sudo ls -la /home/joao. Se houver, faça um backup com sudo tar -czf joao.tar.gz /home/joao.


Trocar de usuário

ComandoO que fazSenha pedida
su - joaoAbre um shell como joao, com o ambiente deleA do joao
sudo -u joao comandoRoda um comando como joaoA sua
sudo -iu joaoAbre um shell como joaoA sua
sudo -iAbre um shell como rootA sua
exitVolta ao seu usuário—
$ sudo -u joao whoami
[sudo: authenticate] Senha:
joao                              « o comando rodou como joao

O hífen em su - joao é importante: sem ele, você vira o joao mas continua com as variáveis e a pasta do usuário anterior.


Quando não funciona

"Permission denied" no usermod ou groupadd
$ usermod -aG financeiro joao
usermod: Permission denied.
usermod: não foi possível travar /etc/passwd; tente novamente mais tarde.

O que aconteceu: faltou o sudo. Mudar contas exige ser administrador. A segunda linha só confirma que ele não conseguiu abrir o arquivo de contas.

Como resolver: sudo usermod -aG financeiro joao.

Coloquei no grupo, mas não funcionou
$ sudo usermod -aG docker ana
$ groups
ana adm cdrom sudo dip plugdev users lpadmin       « "docker" ainda não aparece

O que aconteceu: a sessão atual foi aberta antes da mudança.

Como confirmar: groups ana, com o nome, lê a configuração nova e mostra o grupo.

Como resolver: saia da sessão e entre de novo, ou rode newgrp docker neste terminal.

"não existe tal usuário"
$ id joaoo
id: 'joaoo': não existe tal usuário
$ groups joaoo
groups: 'joaoo': usuário não existente

O que aconteceu: o nome está errado, ou a conta ainda não foi criada.

Como resolver: confira a lista de usuários comuns: awk -F: '$3 >= 1000 && $3 < 60000 {print $1}' /etc/passwd.

"is not in the sudoers file" depois de um usermod

O que aconteceu: provavelmente rodaram usermod -G sem o -a, e o usuário saiu do grupo sudo.

Como resolver: se houver outro administrador, ele roda sudo usermod -aG sudo ana. Se não houver, entre no modo de recuperação e rode o mesmo comando como root. Veja Recuperar um Sistema.


Referência

ComandoO que faz
whoami / id / groups [usuario]Quem sou eu, números e grupos
wQuem está logado e o que está fazendo
getent passwd usuarioMostra a linha da conta
sudo adduser usuarioCria usuário (assistente)
sudo useradd -m -s /bin/bash usuarioCria usuário (modo cru)
sudo usermod -aG grupo usuarioAcrescenta a um grupo
sudo usermod -s /bin/bash usuarioMuda o shell
sudo usermod -l novo antigoRenomeia o login
sudo usermod -L / -U usuarioBloqueia / desbloqueia a conta
sudo groupadd grupo / groupdel grupoCria / apaga grupo
sudo gpasswd -a / -d usuario grupoPõe / tira de um grupo
passwd / sudo passwd usuarioTroca senha
sudo deluser --remove-home usuarioRemove usuário e pasta
su - usuario / sudo -iu usuarioVira outro usuário

Exercícios

1. Acrescentar a um grupo

Complete para colocar a bia no grupo adm, sem tirá-la dos outros grupos:

sudo usermod adm bia

2. Remover com a pasta

Complete para apagar a conta teste junto com a pasta pessoal:

sudo deluser teste

3. Rodar como outro usuário

Complete para rodar whoami como o usuário joao, usando a sua própria senha:

sudo whoami

4. Na linha www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin, o que significa /usr/sbin/nologin?

5. A ana rodou sudo usermod -G financeiro ana. O que acontece?


Resumo

  • Usuários e grupos são números (UID, GID); id mostra os dois.
  • Contas ficam em /etc/passwd, grupos em /etc/group, senhas em /etc/shadow. Não edite à mão.
  • sudo adduser nome cria uma conta completa; useradd é a versão crua, para scripts.
  • usermod -aG grupo usuario: o -a é obrigatório para não perder os outros grupos.
  • Mudanças de grupo valem no próximo login.