image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Arthur Costa
Arthur Costa08/05/2024 19:36
Compartilhe

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.

    image

    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.

    image

    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

    Compartilhe
    Recomendados para você
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comentários (0)