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.txtdentro 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
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 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_projecte de todo o seu conteúdo para o usuáriodev_lead. - Altere o grupo proprietário do diretório
~/project/phoenix_projecte de todo o seu conteúdo para o grupodevelopers.
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
chownpode alterar o usuário e o grupo ao mesmo tempo usando a sintaxeuser:group. - Procure no comando
chownuma opção que permita operar recursivamente em arquivos e diretórios. O comandoman chownpode ajudar. - Como os arquivos pertencem atualmente a
root, você precisará usarsudopara 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
chmodpara 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 usarsudopara alterar as permissões.
Dicas
- A permissão de "execução" em um diretório permite usar
cdpara 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_leadpode acessar completamente o diretório- Os membros do grupo
developerspodem 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, comodev_lead:developers. Esta etapa depende dessas configurações de propriedade.O script de configuração adiciona o usuário
labexao grupodevelopers, 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, executenewgrp developersno terminal. Caso contrário, você poderá ver errosPermission deniedmesmo 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/srcpara obrigar todos os arquivos e subdiretórios novos criados nele a herdarem a propriedade do grupo do próprio diretóriosrc, que édevelopers.
Requisitos
- A solução deve garantir que os novos arquivos em
~/project/phoenix_project/srcherdem automaticamente o grupodevelopers. - As permissões finais devem permitir que o proprietário e o grupo
developersleiam, gravem e entrem no diretóriosrc, enquanto outros usuários não tenham acesso. - Você deve usar o comando
chmodpara definir essa permissão especial. - Talvez seja necessário usar
sudopara 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
setgidusando notação simbólica (g+s) ou numérica. - Na notação numérica, o bit
setgidtem o valor2. 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
sminú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!



