2776 Views
Tempo de leitura: 3 MinutosO permissionamento de arquivos e diretórios no GNU/Linux é baseado em usuários e grupos com permissões ou restrições de leitura, escrita e execução.
Todo arquivo/diretório possui um dono e um grupo. O dono é um usuário do sistema, e o grupo pode conter diversos usuários do sistema. Podemos aplicar permissões para o dono, para o grupo e para quem não for dono nem fizer parte do grupo. Chamamos este terceiro de “outros”.
Portanto, ao aplicarmos permissão para arquivos e diretórios, o faremos considerando esse três elementos: Owner, Group e Others.
Permissões
As permissões do Linux são atribuídas através do comando chmod
seguido de um parâmetro que pode ser um número de 3 caracteres com valores de 0 à 7.
Cada um dos três números atribuem, respectivamente, permissão para o dono, grupo e outros.
Por exemplo:
chmod 753 arquivo |||_ outros ||__ grupo |___ dono
As permissões podem ser leitura (“R”, read), escrita (“W”, write), execução (“X”, execution) ou a mistura de algumas dessas permissões e até a ausência de permissão. A ausência de permissão é representada pelo caractere “-“. Cada uma dessas permissões possui um valor numérico.
É importante fixar o que representam as letras R, W e X, além do hífen, para saber identificar a permissão existente em um arquivo ou diretório.
Vamos montar uma permissão para atribuir a um arquivo. Para isso, primeiro, vamos identificar o valor numérico a ser utilizado no comando chmod
Nosso comando ficará assim:
chmod 754 arquivo
Consultando permissões
Podemos consultar as permissões de arquivos com o comando ls -l
e/ou com stats
. Vejamos a permissão de um diretório fictício chamado “teste07” usando o comando ls -l teste07
:
drwx rw- ---. 2 root impress 4096 Jun 3 13:27 teste07 | | | | |_ Grupo do diretório | | | |________ Dono do diretório | | |________________ Permissão de Outros | |____________________ Permissão do Grupo |________________________ Permissão do Dono
Neste caso:
Portanto, a permissão do diretório “teste07” é 760.
Observação: O amigo leitor pode ter notado que o primeiro conjunto de permissão, no caso a permissão do owner, está “drwx” e não apenas “rwx”. Esse “d” não faz parte da permissão. É um caractere que indica se tratar de um diretório. Se fosse um arquivo seria “-rwx” e se fosse um symlink seria “lrwx”.
Agora ficou fácil, não é?
Alterando permissões de arquivos com chmod:
Nos exemplos anteriores vimos como calcular a permissão de arquivos e diretórios. Para facilitar, vejamos uma relação das permissões em alfanuméricos com seus valores em hexadecimal.
Agora vejamos alguns exemplos:
chmod 444 diretorio
chmod 700 diretorio
Aplicando permissão recursivamente:
Podemos aplicar uma permissão recursivamente com o parâmetro “-R” de forma que todo o diretório e subdiretórios e arquivos também recebam esta permissão. Exemplo:
chmod -R 750 diretorio
Alterando owner/group com chown:
Caso queira mudar o dono e grupo de um arquivo/diretório, basta utilizar o comando chown. A sintaxe do comando é esta:
chown novo-usuario:novo-grupo arquivo
Exemplo:
chown wil:impress fotos-praia
Dica de LPI: O comando chown
serve para definir o owner e group de arquivo, mas ele é um comando para definir o owner. Para definir o group existe um comando específico que é o comando chgrp
. Então, ao se deparar com perguntas como “Qual é o comando para definir group de um arquivo ou diretório?”, lembre-se disso.
Alterando owner/group recursivamente:
Caso queira alterar o owner e group recursivamente, basta utilizar o parâmetro “-R”.
chown -R wil:impress fotos-praia
Conclusão
Como vimos, o permissionamento no GNU/Linux não é um bicho de 7 cabeças. Considerando owner e group, pode-se setar permissões ou restrições de forma que esse arquivo/diretório será acessado somente pelas pessoas corretas para fazer somente aquilo que a permissão lhes permite. Compreender ao menos a teoria do permissionamento do GNU/Linux é fundamental para todos que trabalham com esta plataforma.
Qualquer dúvida que venha surgir no amigo leitor, estou a disposição.
Abraços!