⬅ Voltar ao Dashboard Módulo 1 — Fundamentos do Linux

🏆 Projeto Final: Ambiente Colaborativo

Aula 10 — Aplique tudo o que você aprendeu no bimestre configurando um ambiente real de trabalho em equipe

📋 Cenário do Projeto

🎯 SUA MISSÃO

Configurar um ambiente de trabalho para a equipe de desenvolvimento da TechCorp

📝 Requisitos

  • 3 desenvolvedores (dev1, dev2, dev3)
  • 1 gerente de projeto
  • Pasta compartilhada do projeto
  • Pendrive para backup
  • Logs de acesso para análise

🏗️ O que vamos criar

  • Grupos: devs e gestao
  • Estrutura em /projetos
  • Permissões colaborativas (SGID)
  • Pendrive montado para backup
  • Análise de logs com regex

⏱️ 5 Etapas • Aproximadamente 30–40 minutos — Ao final você terá um ambiente colaborativo completo, aplicando conteúdos das aulas 2 ao 9.

📁 Visão Geral da Estrutura

Hierarquia de diretórios

/projetos/ ├── techcorp/ │ ├── codigo/ ← grupo devs (chmod 2775) │ ├── documentos/ ← grupo gestao (chmod 2775) │ └── logs/ ← somente leitura (chmod 755) └── backup/ → pendrive montado aqui

Usuários e grupos

💡 O SGID (bit 2) em codigo/ e documentos/ garante que todos os arquivos criados dentro dessas pastas herdem automaticamente o grupo correto — essencial para a colaboração funcionar.

ETAPA 1 DE 5

👥 Usuários e Grupos

Crie os grupos e usuários que formarão a equipe da TechCorp.

bash — root
# 1. Criar os grupos root@linux:~# groupadd devs root@linux:~# groupadd gestao # 2. Criar os desenvolvedores root@linux:~# useradd -m -s /bin/bash -G devs dev1 root@linux:~# useradd -m -s /bin/bash -G devs dev2 root@linux:~# useradd -m -s /bin/bash -G devs dev3 # 3. Criar o gerente (pertence aos dois grupos!) root@linux:~# useradd -m -s /bin/bash -G gestao,devs gerente # 4. Definir senhas root@linux:~# passwd dev1 root@linux:~# passwd dev2 root@linux:~# passwd dev3 root@linux:~# passwd gerente # 5. Verificar root@linux:~# grep -E "devs|gestao" /etc/group devs:x:1001:dev1,dev2,dev3,gerente gestao:x:1002:gerente

✅ Progresso da Etapa 1

Aula 04
Aula 04
Aula 04
ETAPA 2 DE 5

📁 Estrutura de Pastas

Crie a árvore de diretórios do projeto usando expansão de chaves para agilizar.

bash — root
# 1. Criar estrutura principal (chaves criam múltiplas pastas de uma vez) root@linux:~# mkdir -p /projetos/techcorp/{codigo,documentos,logs} root@linux:~# mkdir -p /projetos/backup # 2. Verificar estrutura criada root@linux:~# ls -la /projetos/ drwxr-xr-x 3 root root 4096 jan 20 techcorp drwxr-xr-x 2 root root 4096 jan 20 backup # 3. Ver subpastas root@linux:~# ls -la /projetos/techcorp/ drwxr-xr-x 2 root root 4096 jan 20 codigo drwxr-xr-x 2 root root 4096 jan 20 documentos drwxr-xr-x 2 root root 4096 jan 20 logs

💡 O -p no mkdir cria pastas intermediárias automaticamente. As chaves {codigo,documentos,logs} são expansão de brace do bash — criam todas as subpastas de uma só vez.

✅ Progresso da Etapa 2

Aula 03
Aula 02
Aula 03
ETAPA 3 DE 5

🔐 Configurar Permissões

Aplique donos, grupos e permissões com SGID para garantir a colaboração entre os membros da equipe.

bash — root
# 1. Pasta codigo: grupo devs com acesso total root@linux:~# chown root:devs /projetos/techcorp/codigo root@linux:~# chmod 2775 /projetos/techcorp/codigo # 2. Pasta documentos: grupo gestao com acesso total root@linux:~# chown root:gestao /projetos/techcorp/documentos root@linux:~# chmod 2775 /projetos/techcorp/documentos # 3. Pasta logs: todos leem, só root escreve root@linux:~# chmod 755 /projetos/techcorp/logs # 4. Verificar (s = SGID ativo!) root@linux:~# ls -la /projetos/techcorp/ drwxrwsr-x 2 root devs 4096 codigo drwxrwsr-x 2 root gestao 4096 documentos drwxr-xr-x 2 root root 4096 logs

💡 Por que 2775? O 2 ativa o SGID (arquivos criados dentro herdam o grupo da pasta). O 775rwx para dono e grupo, r-x para outros — permitindo leitura geral mas escrita restrita ao grupo.

✅ Progresso da Etapa 3

Aula 05
Aula 05
Aula 05
ETAPA 4 DE 5

💾 Montar Pendrive para Backup

Identifique o pendrive com lsblk, obtenha seu UUID com blkid e monte-o em /projetos/backup.

bash — root
# 1. Identificar o pendrive root@linux:~# lsblk NAME SIZE TYPE MOUNTPOINT sda 500G disk └─sda1 500G part / sdb 16G disk └─sdb1 16G part # ← Pendrive! # 2. Ver UUID do pendrive root@linux:~# blkid /dev/sdb1 /dev/sdb1: UUID="1234-ABCD" TYPE="vfat" # 3. Montar na pasta de backup root@linux:~# mount /dev/sdb1 /projetos/backup # 4. Verificar montagem root@linux:~# df -h | grep backup /dev/sdb1 16G 1.2G 15G 8% /projetos/backup # 5. Fazer backup dos arquivos de código root@linux:~# cp -r /projetos/techcorp/codigo /projetos/backup/

✅ Progresso da Etapa 4

Aula 08
Aula 08
Aula 03
ETAPA 5 DE 5

🔍 Análise de Logs

Crie um arquivo de log simulado e use grep, awk e sed para extrair e tratar informações de acesso.

Criar o log e filtrar tentativas falhas

bash — root
# 1. Criar arquivo de log simulado root@linux:~# cat > /projetos/techcorp/logs/acessos.log 2025-01-20 08:15:32 LOGIN dev1 success 2025-01-20 08:20:45 LOGIN dev2 success 2025-01-20 09:00:12 LOGIN gerente success 2025-01-20 09:15:00 LOGIN hacker failed 2025-01-20 09:15:05 LOGIN hacker failed 2025-01-20 10:00:00 LOGIN dev3 success 2025-01-20 10:05:33 LOGIN admin failed # 2. Encontrar tentativas que falharam root@linux:~# grep "failed" /projetos/techcorp/logs/acessos.log 2025-01-20 09:15:00 LOGIN hacker failed 2025-01-20 09:15:05 LOGIN hacker failed 2025-01-20 10:05:33 LOGIN admin failed # 3. Contar quantas falhas root@linux:~# grep -c "failed" /projetos/techcorp/logs/acessos.log 3

Análises avançadas com awk e sed

bash — root
# 4. Listar apenas os nomes que falharam (awk extrai coluna 4) root@linux:~# grep "failed" acessos.log | awk '{print $4}' hacker hacker admin # 5. Contar tentativas por usuário (sort + uniq -c) root@linux:~# grep "failed" acessos.log | awk '{print $4}' | sort | uniq -c 1 admin 2 hacker # 6. Encontrar logins entre 09:00 e 09:59 (regex) root@linux:~# grep -E " 09:[0-9]{2}:" acessos.log 2025-01-20 09:00:12 LOGIN gerente success 2025-01-20 09:15:00 LOGIN hacker failed 2025-01-20 09:15:05 LOGIN hacker failed # 7. Substituir "failed" por "BLOQUEADO" e salvar relatório root@linux:~# sed 's/failed/BLOQUEADO/g' acessos.log > relatorio.log

✅ Progresso da Etapa 5

Aula 09
Aula 09
Aula 09
Aula 09

🧪 Teste Final: Colaboração entre Devs

Verifique se dev1 e dev2 conseguem colaborar no mesmo arquivo — prova de que o SGID funcionou corretamente.

bash
# 1. Logar como dev1 e criar arquivo root@linux:~# su - dev1 dev1@linux:~$ echo "# Projeto TechCorp" > /projetos/techcorp/codigo/README.md # 2. Verificar permissões (grupo deve ser devs!) dev1@linux:~$ ls -l /projetos/techcorp/codigo/ -rw-rw-r-- 1 dev1 devs 18 jan 20 README.md # 3. Sair e logar como dev2 dev1@linux:~$ exit root@linux:~# su - dev2 # 4. dev2 consegue editar arquivo de dev1? dev2@linux:~$ echo "Editado por dev2" >> /projetos/techcorp/codigo/README.md dev2@linux:~$ cat /projetos/techcorp/codigo/README.md # Projeto TechCorp Editado por dev2 # ✅ Funciona! Colaboração OK!

Ambiente colaborativo funcionando! O SGID garante que todos os arquivos criados em codigo/ herdem o grupo devs, permitindo que qualquer membro do grupo edite — mesmo que não seja o dono do arquivo.

✅ Checklist Final do Projeto

Confirme que todas as etapas foram concluídas com sucesso. Seu progresso é salvo automaticamente no navegador.

👥 Usuários — Aula 04

🔐 Permissões — Aula 05

💾 Montagem — Aula 08

🔍 Regex/Logs — Aula 09

🎯 Meta: todos os itens marcados! Se completou todas as etapas, você domina o essencial de administração Linux.

🎓 Parabéns! Projeto Concluído

Você configurou do zero um ambiente de trabalho colaborativo completo, aplicando conteúdos de seis aulas diferentes.

👥
4 Usuários 2 Grupos
📁
Estrutura Organizada
🔐
Permissões Colaborativas
💾
Backup Configurado
🔍
Logs Analisados

Aulas aplicadas neste projeto

Aula 02 — FHS Aula 03 — Comandos Aula 04 — Usuários Aula 05 — Permissões Aula 08 — Montagem Aula 09 — Regex

💼 Você está pronto para o próximo nível! No próximo bimestre: Shell Script, Servidores, Redes e muito mais.

🎯 Exercício — Arraste e Conecte

Relacione cada comando utilizado no projeto com sua finalidade.

Finalidade
Cria um novo grupo de usuários no sistema
Ativa o SGID para que arquivos herdem o grupo da pasta
Exibe dispositivos de armazenamento e suas partições
Filtra linhas de texto usando um padrão ou expressão regular
Extrai campos específicos de colunas em um arquivo de texto
Substitui padrões de texto em um arquivo ou saída
Comando
groupadd
chmod 2775
lsblk
grep
awk
sed