O Guardião da Fortaleza

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo ao quarto dia na LabEx Corporation, Guardião da Fortaleza! Depois do excelente trabalho de investigação realizado ontem para resolver os problemas críticos do Project Phoenix, o Chief Technology Officer da empresa atribuiu pessoalmente a você a liderança da segurança de todo o projeto.

"Não podemos permitir outro incidente de segurança", explica o CTO durante a 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 totalmente protegido para concluir o Project Phoenix dentro do prazo."

A crise recente destacou a necessidade de medidas de segurança robustas. Um novo prestador de serviços entrará para a equipe para ajudar a acelerar o desenvolvimento, e você precisa garantir que os controles de acesso estejam configurados corretamente. Será necessário criar sistemas de arquivos seguros, definir proprietários precisos, configurar permissões granulares e estabelecer espaços de trabalho colaborativos que protejam a propriedade intelectual da TechNova.

O sucesso do Project Phoenix — e o futuro da empresa — agora dependem 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. Esse arquivo deve ser estritamente confidencial e acessível somente ao proprietário.

Tarefas

  • Crie um arquivo vazio chamado project_keys.txt dentro do diretório ~/project/phoenix_project.
  • Defina as permissões desse arquivo para que somente o proprietário tenha acesso de leitura e escrita, sem qualquer acesso para outras pessoas, nem mesmo usuários do mesmo grupo.

Requisitos

  • O arquivo deve se chamar 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 das permissões: leitura (4), escrita (2) e execução (1).
  • A permissão final deve ser 600 (leitura e escrita para o proprietário, nada para o grupo e para os outros usuários).

Exemplos

Depois de concluir esta tarefa, você deverá ver algo semelhante a:

$ 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 que:

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

Definindo a propriedade dos recursos do projeto

O Project Phoenix é liderado pela equipe de desenvolvimento de Sarah Chen, com o líder técnico dev_lead gerenciando o trabalho principal de desenvolvimento. Esse usuário pertence ao grupo developers, com o qual você vem trabalhando durante a semana. É necessário 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 de todo o seu conteúdo para o usuário dev_lead.
  • Altere o grupo proprietário do diretório ~/project/phoenix_project e de todo o seu conteúdo para o grupo developers.

Requisitos

  • O proprietário do usuário deve ser dev_lead.
  • O grupo proprietário deve ser developers.
  • A alteração 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 o usuário e o grupo ao mesmo tempo usando a sintaxe user:group.
  • Procure no comando chown uma opção que permita operar recursivamente em arquivos e diretórios. O comando man chown pode ajudar.
  • Como os arquivos pertencem atualmente a root, você precisará usar sudo para alterar a propriedade.

Exemplos

Depois de concluir esta tarefa, você deverá ver algo semelhante a:

$ 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

Agora, todos os arquivos e diretórios deverão 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 do diretório principal do projeto, ~/project/phoenix_project. A política é a seguinte: o proprietário deve ter controle total, o grupo deve poder listar os arquivos e entrar no diretório, e pessoas externas não devem ter acesso algum.

Tarefas

  • Defina as permissões do 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 usuários não devem ter permissões.
  • Use o comando chmod para aplicar essas permissões ao próprio diretório ~/project/phoenix_project — não recursivamente.
  • Como o diretório pertence a dev_lead, talvez seja necessário usar sudo para alterar as permissões.

Dicas

  • A permissão de "execução" em um diretório permite usar cd para entrar nele.
  • Calcule o valor numérico das permissões para o proprietário, o grupo e outros usuários.
  • Proprietário (rwx) = 4+2+1 = 7
  • Grupo (r-x) = 4+0+1 = 5
  • Outros (---) = 0+0+0 = 0

Exemplos

Depois de concluir esta tarefa, você deverá ver algo semelhante a:

$ 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 que:

  • 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 usuários não têm permissões

Isso significa que:

  • dev_lead pode acessar completamente o diretório
  • Os membros do grupo developers podem listar o conteúdo e entrar no diretório
  • Pessoas externas não têm acesso ao diretório

Configurando permissões colaborativas para a equipe de desenvolvimento

Observação: certifique-se de concluir primeiro a Etapa 2, que define a propriedade de todos os diretórios do projeto, incluindo src, como dev_lead:developers. Esta etapa depende dessas configurações de propriedade.

O script de configuração adiciona o usuário labex ao grupo developers, mas o shell atual talvez não reconheça automaticamente essa nova associação ao grupo. Antes de testar o acesso em ~/project/phoenix_project/src, execute newgrp developers no terminal. Caso contrário, você poderá ver erros Permission denied mesmo quando a propriedade e as permissões estiverem corretas.

A equipe de desenvolvimento precisa colaborar com eficiência dentro do diretório ~/project/phoenix_project/src. Para garantir uma colaboração tranquila, qualquer arquivo ou diretório novo criado dentro de src deve pertencer automaticamente ao grupo developers. Essa permissão especial afeta somente o grupo proprietário. O usuário proprietário continuará sendo a conta que criar o arquivo, e as permissões de leitura e escrita do arquivo continuarão dependendo do umask desse usuário.

Tarefas

  • Defina uma permissão especial no diretório ~/project/phoenix_project/src para obrigar todos os arquivos e subdiretórios novos criados nele a herdarem a propriedade do grupo do próprio diretório src, que é developers.

Requisitos

  • A solução deve garantir que os novos arquivos em ~/project/phoenix_project/src herdem automaticamente o grupo developers.
  • As permissões finais devem permitir que o proprietário e o grupo developers leiam, gravem e entrem no diretório src, enquanto outros usuários não tenham acesso.
  • Você deve usar o comando chmod para definir essa permissão especial.
  • Talvez seja necessário usar sudo para definir permissões em diretórios pertencentes a outros usuários.

Dicas

  • Essa 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 o valor 2. Ele aparece antes dos três dígitos padrão de permissão, por exemplo, 2770.

Exemplos

Depois de concluir esta tarefa, você deverá ver algo semelhante a:

$ 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 que o grupo tem permissão de execução. A partir de agora, quando você criar um arquivo novo:

$ 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 conectado como outro usuário. O proprietário do arquivo continua sendo o usuário que o criou, enquanto o grupo proprietário é herdado do diretório src. Isso permite o trabalho colaborativo da equipe de desenvolvimento, mantendo a propriedade correta do grupo.

As permissões mostram que:

  • O proprietário (dev_lead) tem permissões de leitura, escrita e execução
  • O grupo (developers) tem permissões de leitura, escrita e execução
  • Outros usuários 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 que o grupo tem permissão de execução

Resumo

Excelente trabalho, Guardião da Fortaleza! Você construiu com sucesso uma base de segurança impenetrável para o Project Phoenix. O CTO e Sarah Chen estão impressionados com a implementação abrangente de segurança. Agora, o diretório do projeto é uma fortaleza que protegerá a propriedade intelectual da TechNova e permitirá uma colaboração fluida.

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

  • Criação de arquivos e permissões básicas: você protegeu as chaves confidenciais do projeto com controles de permissão precisos.
  • Gerenciamento de propriedade: você atribuiu corretamente a propriedade à equipe de desenvolvimento de Sarah e à liderança técnica.
  • Segurança de diretórios: você equilibrou acesso e segurança na 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 da propriedade do grupo.
  • Espaços de trabalho colaborativos: você configurou áreas de colaboração da equipe que mantêm a segurança e, ao mesmo tempo, permitem a produtividade.

Essas habilidades avançadas de segurança comprovaram que você está preparado para responsabilidades de administração de sistemas em nível sênior. Amanhã, você enfrentará seu desafio final como o Guardião das Chaves, gerenciando o aspecto humano da segurança do Project 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