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.txtdentro 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
chmodcom 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_projecte todo o seu conteúdo para o usuáriodev_lead. - Altere o grupo proprietário do diretório
~/project/phoenix_projecte todo o seu conteúdo para o grupodevelopers.
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
chownpode alterar tanto o usuário quanto o grupo ao mesmo tempo usando a sintaxeuser:group. - Procure uma opção no comando
chownque permita operar em arquivos e diretórios recursivamente. O comandoman chowné seu amigo. - Como os arquivos pertencem atualmente ao root, você precisará usar
sudopara 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
chmodpara aplicar essas permissões ao diretório~/project/phoenix_projectem si (não recursivamente). - Como o diretório pertence a
dev_lead, você pode precisar usarsudopara 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_leadpode acessar totalmente o diretório- Membros do grupo
developerspodem 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) paradev_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/srcque force todos os novos arquivos e subdiretórios criados dentro dele a herdar a propriedade do grupo do próprio diretóriosrc(que édevelopers).
Requisitos
- A solução deve garantir que novos arquivos em
~/project/phoenix_project/srcherdem automaticamente o grupodevelopers. - Você deve usar o comando
chmodpara definir esta permissão especial. - Você pode precisar usar
sudopara 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
setgidusando notação simbólica (g+s) ou numérica. - Na notação numérica, o bit
setgidtem um valor de2. 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
sminú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!



