Pular para o conteúdo principal

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​

  1. Qual a diferença entre useradd e adduser?

    • useradd: Baixo nível, menos interativo
    • adduser: Alto nível, mais amigável (Ubuntu)
  2. Por que /etc/shadow é separado de /etc/passwd?

    • Segurança: /etc/passwd é legível por todos
    • /etc/shadow é protegido (senhas com hash)
  3. 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