Introdução
As permissões no Linux determinam quem pode ler, alterar ou executar arquivos. As tarefas do RHCSA geralmente exigem que você inspecione strings de permissão, defina modos numéricos e simbólicos, altere a propriedade e configure diretórios para que os arquivos sejam utilizáveis pelo grupo pretendido.
Neste laboratório, você trabalhará diretamente dentro de /home/labex/project. Você inspecionará arquivos preparados, aplicará modos de arquivo padrão com chmod, habilitará um script com segurança, assumirá a propriedade de um arquivo de transferência pertencente ao root e configurará um diretório compartilhado com setgid.
Inspecionar Campos de Permissão de Arquivo
Nesta etapa, você inspecionará as permissões antes de alterá-las. O primeiro campo na saída de ls -l mostra o tipo de arquivo e as permissões; os campos de proprietário e grupo mostram quem controla o arquivo.
Entre no diretório de projeto padrão do LabEx.
cd /home/labex/project
Liste a árvore do laboratório preparada.
ls -l permissions-lab
Inspecione os arquivos de configuração preparados. O modo, o proprietário e o grupo estão visíveis na listagem detalhada.
ls -l permissions-lab/configs
Use stat para uma visualização compacta de um arquivo. %a imprime o modo numérico, %U imprime o nome do proprietário e %G imprime o nome do grupo.
stat -c '%n %a %U %G' permissions-lab/configs/private.conf
Inspecione o arquivo de transferência pertencente ao root. Observe que o proprietário e o grupo são atualmente root.
ls -l permissions-lab/shared/handoff.txt
Definir Modos de Arquivo com chmod Numérico
Nesta etapa, você usará modos numéricos com chmod. Os três dígitos descrevem as permissões de usuário, grupo e outros. Por exemplo, 600 significa apenas leitura/gravação para o usuário, e 644 significa leitura/gravação para o usuário, enquanto o grupo e outros podem apenas ler.
Comece a partir do diretório do projeto.
cd /home/labex/project
Torne o arquivo private.conf legível e gravável apenas pelo seu proprietário. Isso é apropriado para um arquivo que contém configurações confidenciais.
chmod 600 permissions-lab/configs/private.conf
Torne o readme.txt legível por todos, mas gravável apenas pelo proprietário.
chmod 644 permissions-lab/configs/readme.txt
Inspecione os modos com stat.
stat -c '%n %a' permissions-lab/configs/private.conf permissions-lab/configs/readme.txt
Você deverá ver 600 para private.conf e 644 para readme.txt.
Habilitar Execução de Script com chmod Simbólico
Nesta etapa, você usará permissões simbólicas. O modo simbólico permite adicionar ou remover uma permissão específica sem reescrever todo o modo numérico.
Comece a partir do diretório do projeto.
cd /home/labex/project
Inspecione o script antes de alterá-lo. Ele deve estar legível, mas não executável.
ls -l permissions-lab/scripts/check-inventory.sh
Adicione permissão de execução para o proprietário e o grupo. Em u+x,g+x, u significa usuário, g significa grupo e +x significa adicionar permissão de execução.
chmod u+x,g+x permissions-lab/scripts/check-inventory.sh
Execute o script a partir do seu caminho.
permissions-lab/scripts/check-inventory.sh
Saída esperada:
inventory check ok
Inspecione o modo final. Ele agora deve incluir bits de execução para o usuário e o grupo.
stat -c '%n %a' permissions-lab/scripts/check-inventory.sh
Alterar a Propriedade de um Arquivo de Transferência
Nesta etapa, você assumirá a propriedade de um arquivo pertencente ao root usando sudo chown. Alterar a propriedade geralmente requer privilégios administrativos, portanto, sudo é apropriado para este arquivo de prática.
Comece a partir do diretório do projeto.
cd /home/labex/project
Inspecione o proprietário e o grupo atuais. O arquivo começa como root:root.
stat -c '%n %U:%G %a' permissions-lab/shared/handoff.txt
Altere o proprietário e o grupo para labex:labex. O formato user:group define ambos os campos em um único comando.
sudo chown labex:labex permissions-lab/shared/handoff.txt
Restrinja o arquivo para leitura/gravação do proprietário e acesso de leitura para o grupo.
chmod 640 permissions-lab/shared/handoff.txt
Adicione uma linha operacional agora que o labex é o proprietário do arquivo.
printf 'Handled by labex after ownership update.\n' >> permissions-lab/shared/handoff.txt
Inspecione o proprietário, grupo, modo e conteúdo finais.
stat -c '%n %U:%G %a' permissions-lab/shared/handoff.txt
cat permissions-lab/shared/handoff.txt
Configurar um Diretório Compartilhado com setgid
Nesta etapa, você configurará um diretório compartilhado. Os diretórios precisam de permissão de execução para serem acessados e pesquisados. O bit setgid em um diretório faz com que novos arquivos herdem o grupo do diretório, o que ajuda as equipes a manter o conteúdo compartilhado agrupado de forma consistente.
Comece a partir do diretório do projeto.
cd /home/labex/project
Inspecione o modo do diretório atual.
stat -c '%n %a %U:%G' permissions-lab/teamdrop
Defina o modo do diretório como 2775. O 2 inicial habilita o setgid, 775 dá acesso total ao proprietário e ao grupo, e dá acesso de leitura/execução aos outros.
chmod 2775 permissions-lab/teamdrop
Crie um arquivo dentro do diretório compartilhado.
printf 'team handoff ready\n' > permissions-lab/teamdrop/status.txt
Defina o modo do arquivo para que o proprietário e o grupo possam lê-lo e gravá-lo.
chmod 664 permissions-lab/teamdrop/status.txt
Inspecione o diretório e o novo arquivo.
stat -c '%n %a %U:%G' permissions-lab/teamdrop permissions-lab/teamdrop/status.txt
cat permissions-lab/teamdrop/status.txt
Resumo
Você praticou permissões e propriedade padrão do Linux para a preparação do RHCSA. Você inspecionou campos de permissão, aplicou modos de arquivo numéricos, usou chmod simbólico para habilitar a execução de scripts, alterou a propriedade com sudo chown, definiu modos de arquivo seguros e configurou um diretório compartilhado com setgid para que novos arquivos herdem o grupo pretendido.



