Explorando as Permissões de Arquivos no Linux: Introdução para iniciantes
Introdução ao Linux:
Linux é um sistema operacional de código aberto amplamente utilizado em servidores, dispositivos móveis e até mesmo em desktops. Ele oferece uma base sólida para executar uma variedade de aplicativos e serviços, como servidores de e-mail, gerenciamento de arquivos, armazenamento em nuvem dentre muitos outros ele até é capaz de trabalhar em conjunto com outros sistemas operacionais, como o Windows por exemplo, Sem contar com as inúmeras distribuições, cada uma com um leque de funcionalidades e propósitos. Mas voltando ao que interessa, as permissões...
O que são permissões no Linux:
No Linux, as permissões determinam quem pode ler, escrever e executar arquivos e pastas. Cada arquivo e pasta possui três conjuntos de permissões: proprietário, grupo e outros. Essas permissões são representadas por letras (r, w, x), detalhando:
- Read/Leitura (r): Essa permissão permite visualizar o arquivo ou conjunto de arquivos dentro de um determinado diretório.
- Write/Escrita (w): A permissão de escrita permite criar, modificar ou deletar arquivos dentro de um diretório.
- Execute/Executar (x): Permissão de execução garante que seja executado scripts ou programas.
Como mencionado acima, essas permissões são aplicadas a três entidades, sendo elas:
- User (u): Representa o dono do arquivo, que pode ser a pessoa que o criou ou também designado a alguém ou alguma coisa.
- Group (g): Representa as permissões para um grupo específico, impactando somente os usuários contidos dentro desse grupo.
- Others/Outros (o): Representa todos aqueles que não são donos nem estão no grupo de um determinado arquivo, ou seja, todos os outros usuarios do sistema.
Como isso aparecerá para mim?
Eles seguem a estrutura "rwxrwxrwx", onde os 3 primeiros caracteres representam as permissões do 'usuário dono', em seguida, os próximos 3 representam as permissões do 'grupo' e os últimos 3 para 'outros', como mostrado abaixo.
Notação Simbólica x Notação Numérica:
Antes de qualquer pratica queria primeiramente mostrar duas formas de configurar essas permissões (sendo a segunda a minha preferida) e, em seguida, algumas ferramentas que podemos usar para concluir nosso objetivo.
Notação simbólica: Usamos as letras 'r', 'w' e 'x', ou para não permitir nada '-', na prática. Por exemplo, se você vê algo assim: "rw-r--r--", significa que o dono do arquivo pode ler e escrever, mas não pode executar (rw-), enquanto o grupo e outros usuários podem apenas ler e não podem modificar nem executar nada (r--).
Métodos numéricos: Onde cada número é associado a uma permissão. O 'Read' é representado por 4, 'Write' por 2 e 'Execute' por 1. Seguindo o mesmo exemplo acima, se quisermos configurar as mesmas permissões, poderíamos apenas passar o número '644', onde cada dígito representa uma entidade. Por exemplo, o 6 (4+2) para proprietários representa as permissões de leitura e escrita, enquanto o número do meio e o último, ou seja, o 4, representam, respectivamente, o grupo e os outros, mas as permissões são apenas de leitura.
Como posso usar isso na prática?
Podemos usar o comando 'chmod' ja nativo das distribuições linux que nos permite fazer essa alteração, sua sintaxe é simples.
chmod [opções] arquivo.txt
Na onde as [opções] são a combinação do 'modo ugoa' como especificado na documentação da ferramenta. O primeiro argumento sao QUEM a gente vai alterar tendo as seguintes opções:
- 'u' para user
- 'g' para grupo
- 'o' para outros
- 'a' para todos
O segundo argumento ou operador responde O QUE a gente vai fazer, tendo as seguintes opções:
- '+' adciona permissões
- '-' remove as permissões
- '=' Redefine as permissões
O terceiro argumento diz respeito as permissoes propriamente ditas, são elas:
- as classicas r, w, e x que são respectivamente, leitura, escrita e execução
- 'u' permissões igual ao dono do arquivo
- 'g' permissões igual ao grupo
- 'o' permissões igual aos outros
- 's' Ele permite que um arquivo seja executado com os privilégios do proprietário do arquivo ou grupo. ou em melhores palavras segundo a documentação da ferramenta:
''Caso esta permissão seja dada ao dono do arquivo (diretório), a pessoa (com autorização) que executar o arquivo (acessar o diretório), o fará com as permissões de dono do arquivo (diretório). Este tipo de permissão é conhecido como SUID (Set User ID). Por exemplo, se o root possui um programa SUID, esse programa executará com privilégios de root, mesmo que tenha sido inicializado por um usuário comum.''
- 't' conhecidos como sticky bit, é um tipo de permissão especial que faz com o que usuarios tirando o dono do arquivo, não podem modificar nem apagar o mesmo.
Exemplos:
Conceder permissão de leitura e escrita para o proprietário do arquivo
chmod u+rw arquivo.txt
Remover permissão de escrita para o grupo do arquivo:
chmod g-w arquivo.txt
Conceder permissão de leitura, escrita e execução para o proprietário e o grupo, mas apenas leitura para outros:
chmod ug+rwx arquivo.txt
chmod o+r arquivo.txt
Mais exemplos mas usando notação numerica:
Conceder permissão total para o proprietário e o grupo, mas nenhuma para outros:
chmod 770 arquivo.txt
Conceder permissão total para o usuário dono, mas de leitura e execução para os demais:
chmod 755 arquivo.txt
Conceder permissao de leitura para todos:
chmod 444 arquivo.txt
Como podemos verificar as permissões?
Para isso usamos o comando 'ls -l', exemplo de saida:
$ ls -l
total 24
drwxr-xr-x 2 user group 4096 May 8 10:00 diretorio1
-rw-r--r-- 1 user group 532 May 8 09:45 arquivo1.txt
-rw-r--r-- 1 user group 720 May 8 09:45 arquivo2.txt
drwxr-xr-x 3 user group 4096 May 8 10:00 diretorio2
Na onde depois do 'tipo de objeto' vemos as permissões setadas no diretório ou arquivo (rw-r--r-- leitura e escrita para o usuario dono e leitura aos demais), depois o numero de links, em seguida o usuario dono seguido do grupo, tamanho, data e por fim o caminho ou o proprio arquivo.
OBS: caso de duvidas relacionados a essa saida olhar a primeira foto
Segurança dentro do sistema
Em resumo, as permissões de arquivos no Linux são uma parte fundamental da segurança do sistema, permitindo um controle preciso sobre quem pode acessar e modificar os recursos do sistema. Ao entender e gerenciar adequadamente as permissões de arquivo, os administradores de sistema podem fortalecer significativamente a segurança de seus sistemas Linux, podendo usar metodologias como principio do menor privilégio ou implantar e realizar auditorias no sistema para garantir que apenas usuarios autorizados acessem recursos do sistema e etc.
CONCLUSÃO:
Cobrimos o basico das permissões dentro de um ambiente linux, aprendemos como são a sintaxe e o modo de operar, usamos ferramentas como o chmod e o ls para nos auxiliar na modificação e visualização das permissões propriamente ditas. Fixar esse conhecimento é essencial se voce se interessa na galaxia que é esse sistema chamado 'linux', KEEP LEARNING!!!
Muito agradecido pela sua atenção, de coração, se errei ou me esqueci de algo por favor não exite em comentar. :)
Redes Sociais:
GitHub: https://github.com/ArthurCost4
Linkedin: https://www.linkedin.com/in/arthur-costa-a2b450212/
Fontes:
https://help.ubuntu.com/stable/ubuntu-help/nautilus-file-properties-permissions.html.pt-BR
https://www.geeksforgeeks.org/permissions-in-linux/
https://guialinux.uniriotec.br/chmod/
https://www.infowester.com/linuxpermissoes.php
ME DERAM UMA FORÇA -> ChatGPT e Lexica.art