Atividade prática: administrando permissões#

Vamos realizar uma sequência de operações para consolidar os conceitos apresentados.

Os exemplos a seguir podem ser executados em um diretório de testes no seu ambiente Linux.

Criar arquivos e inspecionar seus metadados#

Crie um diretório de trabalho e dois arquivos:

mkdir -p ~/laboratorio-permissoes
cd ~/laboratorio-permissoes

touch relatorio.txt
printf '#!/bin/sh\necho "Olá, Linux"\n' > script.sh

Consulte as informações:

ls -l
ls -li
stat relatorio.txt

Observe os números de inode, o tamanho dos arquivos, os proprietários, os grupos e as permissões iniciais.

O modo inicial depende da umask(1), que influencia as permissões concedidas durante a criação dos objetos.

Alterar permissões com octal#

Execute:

chmod 640 relatorio.txt
chmod 750 script.sh

Verifique:

ls -l

Os modos básicos esperados são:

-rw-r----- relatorio.txt
-rwxr-x--- script.sh

O script passa a ter permissão de execução para o proprietário e para o grupo, mas isso não garante, por si só, que sua execução será bem-sucedida: o interpretador indicado[1], o conteúdo e outras condições também importam.

Alterar permissões com símbolos#

Experimente:

chmod o+r relatorio.txt
chmod g-w script.sh
chmod u-x script.sh

Em seguida:

ls -l

Observe como cada comando modifica apenas as categorias e permissões especificadas.

Alterar o grupo proprietário#

Consulte os grupos existentes:

getent group

Escolha um grupo ao qual seu usuário pertença e execute:

chgrp nome_do_grupo relatorio.txt
ls -l relatorio.txt

Substitua nome_do_grupo pelo nome real de um grupo apropriado do seu sistema. Se não tiver autorização para realizar a alteração, verifique os privilégios e a associação do usuário ao grupo.

Consultar novamente os metadados#

stat relatorio.txt
ls -li relatorio.txt

Compare a saída com a consulta inicial.

Você deverá ser capaz de identificar alterações no modo de acesso e, se a operação tiver sido realizada, no grupo proprietário. O número do inode normalmente continuará igual, pois alterar permissões ou propriedade não cria um novo objeto.