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".
- A ler a saída do
ide 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 -Gsem 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.
| Tipo | UID | Exemplos | Para quê |
|---|---|---|---|
| Superusuário | 0 | root | Administrador com poder total. No Ubuntu, ninguém faz login direto com ele; usa-se o sudo. |
| Usuários de sistema | 1 a 999 | www-data, syslog | Rodam serviços. Não são pessoas e não fazem login. |
| Usuários comuns | 1000 em diante | ana, joao | Pessoas. 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:
| Grupo | Quem está nele pode… |
|---|---|
sudo | Usar o sudo, ou seja, administrar a máquina. |
adm | Ler os logs do sistema em /var/log. |
lpadmin | Instalar e configurar impressoras. |
plugdev | Usar alguns dispositivos removíveis. |
cdrom, dip | Usar 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/nologinimpede 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
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 joao | useradd joao | |
|---|---|---|
| Cria a pasta pessoal | Sim | Só com -m |
| Shell bash | Sim | Só com -s /bin/bash |
| Pede a senha | Sim | Não; use passwd depois |
| Onde existe | Debian e Ubuntu | Todo Linux |
| Melhor para | Uso manual | Scripts |
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
-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
| Comando | Observação |
|---|---|
sudo usermod -aG grupo usuario | Funciona em todo Linux. Cuidado com o -a. |
sudo gpasswd -a usuario grupo | Adiciona a um grupo só; não tem o risco do -a. |
sudo adduser usuario grupo | Do 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.
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
| Comando | O que faz |
|---|---|
passwd | Troca a sua senha (pede a atual primeiro). |
sudo passwd joao | Define a senha de outro usuário, sem precisar da antiga. |
sudo passwd -l joao | Bloqueia a senha (lock). A conta continua existindo. |
sudo passwd -u joao | Desbloqueia (unlock). |
sudo passwd -e joao | Obriga a trocar a senha no próximo login. |
chage -l joao | Mostra 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.
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
| Comando | O que faz | Senha pedida |
|---|---|---|
su - joao | Abre um shell como joao, com o ambiente dele | A do joao |
sudo -u joao comando | Roda um comando como joao | A sua |
sudo -iu joao | Abre um shell como joao | A sua |
sudo -i | Abre um shell como root | A sua |
exit | Volta 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
$ 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.
$ 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.
$ 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.
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
| Comando | O que faz |
|---|---|
whoami / id / groups [usuario] | Quem sou eu, números e grupos |
w | Quem está logado e o que está fazendo |
getent passwd usuario | Mostra a linha da conta |
sudo adduser usuario | Cria usuário (assistente) |
sudo useradd -m -s /bin/bash usuario | Cria usuário (modo cru) |
sudo usermod -aG grupo usuario | Acrescenta a um grupo |
sudo usermod -s /bin/bash usuario | Muda o shell |
sudo usermod -l novo antigo | Renomeia o login |
sudo usermod -L / -U usuario | Bloqueia / desbloqueia a conta |
sudo groupadd grupo / groupdel grupo | Cria / apaga grupo |
sudo gpasswd -a / -d usuario grupo | Põe / tira de um grupo |
passwd / sudo passwd usuario | Troca senha |
sudo deluser --remove-home usuario | Remove usuário e pasta |
su - usuario / sudo -iu usuario | Vira outro usuário |
Exercícios
1. Acrescentar a um grupo
Complete para colocar a bia no grupo adm, sem tirá-la dos outros grupos:
2. Remover com a pasta
Complete para apagar a conta teste junto com a pasta pessoal:
3. Rodar como outro usuário
Complete para rodar whoami como o usuário joao, usando a sua própria senha:
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);
idmostra os dois. - Contas ficam em
/etc/passwd, grupos em/etc/group, senhas em/etc/shadow. Não edite à mão. sudo adduser nomecria 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.