Lab 5.1 - Gerenciamento de Usuários
Objetivos
Ao final deste lab, você será capaz de:
- Criar usuários com useradd
- Modificar usuários com usermod
- Remover usuários com userdel
- Gerenciar senhas
- Compreender os arquivos de sistema (/etc/passwd, /etc/shadow)
Pré-requisitos
- Ubuntu 24.04 instalado
- Acesso sudo/root
- Terminal aberto
Exercício 1: Criar Usuários
Etapa 1: useradd Básico
# Criar um usuário simples
sudo useradd testuser1
# Verificar
id testuser1
cat /etc/passwd | grep testuser1
Etapa 2: useradd com Opções
# Criar com diretório home
sudo useradd -m testuser2
# Criar com shell específico
sudo useradd -m -s /bin/bash testuser3
# Criar com grupo primário
sudo useradd -m -g users testuser4
# Criar com UID específico
sudo useradd -m -u 1500 testuser5
Etapa 3: Criar com adduser (Ubuntu)
# adduser é mais interativo (recomendado no Ubuntu)
sudo adduser testuser6
# Siga os prompts:
# - Senha
# - Informações (opcional)
Exercício 2: Modificar Usuários
Etapa 1: usermod Básico
# Alterar o shell
sudo usermod -s /bin/zsh testuser1
# Verificar
grep testuser1 /etc/passwd
Etapa 2: Alterar o Diretório Home
# Alterar o diretório home
sudo usermod -d /home/novo-home testuser1
# Mover o conteúdo
sudo usermod -m -d /home/novo-home testuser1
Etapa 3: Adicionar a Grupos
# Adicionar a um grupo secundário
sudo usermod -aG sudo testuser1
# Verificar
groups testuser1
id testuser1
Etapa 4: Bloquear/Desbloquear
# Bloquear uma conta
sudo usermod -L testuser1
# Verificar
sudo passwd -S testuser1
# Desbloquear
sudo usermod -U testuser1
Exercício 3: Senhas
Etapa 1: Definir uma Senha
# Definir a senha
sudo passwd testuser1
# Definir sem prompt
echo "testuser1:motdepasse" | sudo chpasswd
Etapa 2: Expiração de Senha
# Forçar alteração no próximo login
sudo passwd -e testuser1
# Definir expiração
sudo chage -M 90 testuser1 # Expira em 90 dias
# Ver informações
sudo chage -l testuser1
Etapa 3: Política de Senhas
# Ver a configuração
cat /etc/pam.d/common-password
# Instalar libpam-pwquality para política mais rígida
sudo apt install libpam-pwquality
# Configuração: /etc/security/pwquality.conf
Exercício 4: Arquivos de Sistema
Etapa 1: /etc/passwd
# Ver o arquivo
cat /etc/passwd
# Formato: username:x:UID:GID:comment:home:shell
# Exemplo: testuser1:x:1001:1001::/home/testuser1:/bin/bash
# Analisar
awk -F: '{print $1, $3, $7}' /etc/passwd
Etapa 2: /etc/shadow
# Ver (necessita sudo)
sudo cat /etc/shadow
# Formato: username:password_hash:last_change:min:max:warn:inactive:expire
# Ver informações de um usuário
sudo grep testuser1 /etc/shadow
Etapa 3: /etc/group
# Ver os grupos
cat /etc/group
# Formato: groupname:x:GID:members
# Ver os grupos de um usuário
groups testuser1
id testuser1
Exercício 5: Remover Usuários
Etapa 1: userdel Básico
# Remover um usuário (mantém o home)
sudo userdel testuser1
# Verificar
id testuser1 # Não deve mais existir
ls -la /home/ # Home ainda existe
Etapa 2: Remover com Home
# Remover usuário e home
sudo userdel -r testuser2
# Verificar
ls -la /home/ # Home removido
Etapa 3: Remover com deluser (Ubuntu)
# deluser é mais seguro (Ubuntu)
sudo deluser testuser3
# Remover com home
sudo deluser --remove-home testuser4
Exercício 6: Prática Completa
Etapa 1: Criar um Usuário Desenvolvedor
# Criar com todas as opções
sudo useradd -m -s /bin/bash -G sudo,developers -c "Desenvolvedor" devuser
# Definir senha
sudo passwd devuser
# Verificar
id devuser
groups devuser
Etapa 2: Script de Criação
# Script para criar um usuário
cat > create-user.sh << 'EOF'
#!/bin/bash
USERNAME=$1
FULLNAME=$2
GROUPS=$3
if [ -z "$USERNAME" ]; then
echo "Usage: $0 username [fullname] [groups]"
exit 1
fi
# Criar usuário
sudo useradd -m -s /bin/bash -c "$FULLNAME" "$USERNAME"
# Adicionar aos grupos se especificados
if [ -n "$GROUPS" ]; then
sudo usermod -aG "$GROUPS" "$USERNAME"
fi
# Definir senha
sudo passwd "$USERNAME"
echo "Usuário $USERNAME criado"
id "$USERNAME"
EOF
chmod +x create-user.sh
# Usar
./create-user.sh "newuser" "Novo Usuário" "sudo,users"
Verificação
Checklist
Verifique se você consegue:
- Criar usuários (useradd, adduser)
- Modificar usuários (usermod)
- Gerenciar senhas (passwd, chage)
- Compreender /etc/passwd e /etc/shadow
- Remover usuários (userdel, deluser)
- Gerenciar grupos de usuários
Perguntas para Reflexão
-
Qual a diferença entre useradd e adduser?
- useradd: Baixo nível, menos interativo
- adduser: Alto nível, mais amigável (Ubuntu)
-
Por que /etc/shadow é separado de /etc/passwd?
- Segurança: /etc/passwd é legível por todos
- /etc/shadow é protegido (senhas com hash)
-
Quando usar userdel -r?
- Quando se deseja remover completamente o usuário
- Atenção: também remove o diretório home
Próximos Passos
- Lab 5.2: Gerenciamento de Grupos
- Lab 5.3: Permissões Avançadas
- Capítulo 5.1: Gerenciamento de Usuários
Lab criado em: Dezembro 2024 - Testado no Ubuntu 24.04