DIA 04: O Guardião da Fortaleza

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo ao Dia 4 na LabEx Corporation, Guardião da Fortaleza! Após seu brilhante trabalho de investigação ontem para resolver os problemas críticos do Projeto Phoenix, o Diretor de Tecnologia (CTO) da empresa designou você pessoalmente para liderar a segurança de todo o projeto.

"Não podemos nos dar ao luxo de outro incidente de segurança", explica o CTO durante sua reunião matinal. "Sua investigação revelou que nossa configuração de segurança anterior era inadequada. Sarah Chen e a equipe de desenvolvimento precisam de um ambiente à prova de falhas para concluir o Projeto Phoenix dentro do cronograma."

A crise recente destacou a necessidade de medidas de segurança robustas. Um novo contratado se juntará à equipe para ajudar a acelerar o desenvolvimento, e você deve garantir que os controles de acesso estejam perfeitamente configurados. Você precisará criar sistemas de arquivos seguros, atribuir propriedade precisa, definir permissões granulares e estabelecer espaços de trabalho colaborativos que protejam a propriedade intelectual da TechNova.

O sucesso do Projeto Phoenix — e o futuro da empresa — agora depende da fortaleza digital que você construirá hoje. Vamos proteger este sistema!

Criando um Arquivo Seguro para um Novo Projeto

Sua primeira tarefa é criar um arquivo que armazenará chaves confidenciais do projeto. Este arquivo deve ser estritamente confidencial e acessível apenas pelo seu proprietário.

Tarefas

  • Crie um novo arquivo vazio chamado project_keys.txt dentro do diretório ~/project/phoenix_project.
  • Defina as permissões deste arquivo para que apenas o proprietário tenha acesso de leitura e escrita, e ninguém mais (nem mesmo usuários no mesmo grupo) tenha qualquer acesso.

Requisitos

  • O arquivo deve ser nomeado project_keys.txt.
  • O arquivo deve estar localizado em ~/project/phoenix_project/project_keys.txt.
  • Use o comando chmod com notação numérica para definir as permissões.

Dicas

  • Você pode criar um arquivo vazio usando o comando touch.
  • Lembre-se dos valores numéricos para as permissões: leitura (4), escrita (2) e execução (1).
  • A permissão final deve ser 600 (leitura+escrita para o proprietário, nada para grupo e outros).

Exemplos

Após concluir esta tarefa, você deverá ver algo como:

$ ls -l ~/project/phoenix_project/
-rw------- 1 labex labex 0 Sep 3 16:03 project_keys.txt

As permissões do arquivo mostram -rw-------, indicando:

  • O proprietário tem permissões de leitura e escrita
  • O grupo não tem permissões
  • Outros não têm permissões

Atribuindo Propriedade de Recursos do Projeto

O Projeto Phoenix é liderado pela equipe de desenvolvimento de Sarah Chen, com o líder técnico dev_lead gerenciando o trabalho principal de desenvolvimento. Este usuário pertence ao grupo developers com o qual você tem trabalhado durante toda a semana. Você precisa transferir a propriedade de todos os arquivos e diretórios do projeto para garantir o controle de acesso adequado.

Tarefas

  • Altere o proprietário do diretório ~/project/phoenix_project e todo o seu conteúdo para o usuário dev_lead.
  • Altere o grupo proprietário do diretório ~/project/phoenix_project e todo o seu conteúdo para o grupo developers.

Requisitos

  • O usuário proprietário deve ser dev_lead.
  • O grupo proprietário deve ser developers.
  • A mudança de propriedade deve ser aplicada recursivamente a todos os arquivos e subdiretórios dentro de ~/project/phoenix_project.
  • Você deve usar o comando chown.

Dicas

  • O comando chown pode alterar tanto o usuário quanto o grupo ao mesmo tempo usando a sintaxe user:group.
  • Procure uma opção no comando chown que permita operar em arquivos e diretórios recursivamente. O comando man chown é seu amigo.
  • Como os arquivos pertencem atualmente ao root, você precisará usar sudo para alterar a propriedade.

Exemplos

Após concluir esta tarefa, você deverá ver algo como:

$ ls -ld ~/project/phoenix_project/
drwxrwxr-x 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

$ ls -l ~/project/phoenix_project/
total 0
drwxrwxr-x 2 dev_lead developers 27 Sep 3 16:00 docs
-rw------- 1 dev_lead developers 0 Sep 3 16:03 project_keys.txt
drwxrwxr-x 2 dev_lead developers 6 Sep 3 16:00 src

Todos os arquivos e diretórios agora devem pertencer a:

  • Usuário: dev_lead
  • Grupo: developers

Protegendo o Diretório Principal do Projeto

Agora que a propriedade está correta, você precisa definir as permissões básicas para o diretório principal do projeto, ~/project/phoenix_project. A política é a seguinte: o proprietário deve ter controle total, o grupo deve ser capaz de listar arquivos e entrar no diretório, e estranhos não devem ter acesso algum.

Tarefas

  • Defina as permissões para o diretório ~/project/phoenix_project.

Requisitos

  • O proprietário (dev_lead) deve ter permissões de leitura, escrita e execução.
  • O grupo (developers) deve ter permissões de leitura e execução.
  • Outros não devem ter permissões.
  • Use o comando chmod para aplicar essas permissões ao diretório ~/project/phoenix_project em si (não recursivamente).
  • Como o diretório pertence a dev_lead, você pode precisar usar sudo para alterar as permissões.

Dicas

  • A permissão de "execução" em um diretório permite que você entre nele (cd).
  • Calcule o valor numérico da permissão para proprietário, grupo e outros.
  • Proprietário (rwx) = 4+2+1 = 7
  • Grupo (r-x) = 4+0+1 = 5
  • Outros (---) = 0+0+0 = 0

Exemplos

Após concluir esta tarefa, você deverá ver algo como:

$ ls -ld ~/project/phoenix_project/
drwxr-x--- 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

As permissões do diretório mostram drwxr-x---, indicando:

  • O proprietário (dev_lead) tem permissões de leitura, escrita e execução
  • O grupo (developers) tem permissões de leitura e execução
  • Outros não têm permissões

Isso significa:

  • dev_lead pode acessar totalmente o diretório
  • Membros do grupo developers podem listar o conteúdo e entrar no diretório
  • Estranhos não têm acesso ao diretório

Configurando Permissões Colaborativas para a Equipe de Desenvolvimento

Nota: Certifique-se de ter concluído a Etapa 2 primeiro, que define a propriedade de todos os diretórios do projeto (incluindo src) para dev_lead:developers. Esta etapa baseia-se nessas configurações de propriedade.

A equipe de desenvolvimento precisa colaborar efetivamente dentro do diretório ~/project/phoenix_project/src. Para garantir uma colaboração tranquila, qualquer novo arquivo ou diretório criado dentro de src deve pertencer automaticamente ao grupo developers. Esta permissão especial afeta apenas o grupo proprietário. O usuário proprietário ainda será a conta que cria o arquivo, e as permissões de leitura/escrita do arquivo ainda dependerão do umask desse usuário.

Tarefas

  • Defina uma permissão especial no diretório ~/project/phoenix_project/src que force todos os novos arquivos e subdiretórios criados dentro dele a herdar a propriedade do grupo do próprio diretório src (que é developers).

Requisitos

  • A solução deve garantir que novos arquivos em ~/project/phoenix_project/src herdem automaticamente o grupo developers.
  • Você deve usar o comando chmod para definir esta permissão especial.
  • Você pode precisar usar sudo para definir permissões em diretórios pertencentes a outros usuários.

Dicas

  • Esta permissão especial é chamada de bit "set group ID" ou setgid.
  • Você pode aplicar o bit setgid usando notação simbólica (g+s) ou numérica.
  • Na notação numérica, o bit setgid tem um valor de 2. Ele é colocado antes dos três dígitos de permissão padrão (por exemplo, 2770).

Exemplos

Após concluir esta tarefa, você deverá ver algo como:

$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/

O s na posição de execução do grupo indica que o bit setgid está definido e o grupo tem permissão de execução. Agora, quando você cria um novo arquivo:

$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw-r-- 1 labex developers 0 Apr 15 18:28 /home/labex/project/phoenix_project/src/new_file.txt

Observe que o novo arquivo pertence automaticamente ao grupo developers, mesmo que você esteja logado como um usuário diferente. O proprietário do arquivo ainda permanece o usuário que criou o arquivo, enquanto o grupo proprietário é herdado do diretório src. Isso garante o trabalho colaborativo dentro da equipe de desenvolvimento, mantendo a propriedade de grupo adequada.

As permissões mostram:

  • O proprietário (dev_lead) tem permissões de leitura e escrita
  • O grupo (developers) tem permissões de leitura e escrita
  • Outros não têm permissões
  • O s minúsculo na posição de execução do grupo indica que o bit setgid está definido e o grupo tem permissão de execução

Resumo

Trabalho excepcional, Guardião da Fortaleza! Você construiu com sucesso uma base de segurança impenetrável para o Projeto Phoenix. O CTO e Sarah Chen estão impressionados com sua implementação abrangente de segurança. O diretório do projeto agora é uma fortaleza que protegerá a propriedade intelectual da TechNova, permitindo uma colaboração perfeita.

Ao longo deste desafio, você dominou habilidades críticas de segurança no Linux:

  • Criação de Arquivos e Permissões Básicas: Você protegeu chaves confidenciais do projeto com controles de permissão precisos.
  • Gerenciamento de Propriedade: Você atribuiu habilmente a propriedade à equipe de desenvolvimento de Sarah e à liderança técnica.
  • Segurança de Diretórios: Você equilibrou acesso e segurança para a infraestrutura principal do projeto.
  • Permissões Avançadas: Você configurou permissões setgid para garantir espaços de trabalho colaborativos com herança automática de propriedade de grupo.
  • Espaços de Trabalho Colaborativos: Você configurou espaços de colaboração de equipe que mantêm a segurança enquanto permitem a produtividade.

Essas habilidades avançadas de segurança provaram sua prontidão para responsabilidades seniores de administração de sistemas. Amanhã, você enfrentará seu desafio final como o Guardião das Chaves, gerenciando o elemento humano da segurança do Projeto Phoenix ao controlar o acesso dos usuários ao sistema!

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar