segunda-feira, 29 de maio de 2023

Permissões em Linux - Forma Numérica

Três ficheiros com permissões de nível 4, 2 e 1

Índice de conteúdo:

  1. O que é isso de permissões de arquivos em Linux?
  2. Modo numérico de atribuir ou remover permissões
  3. Como alterar permissões

O que é isso de permissões de arquivos em Linux?

As permissões de arquivos no sistema Linux determinam quem pode ou não ter acesso a um determinado ficheiro, ou diretório no sistema e quais as permissões concedidas como sendo editar, visualizar e executar.

As permissões de arquivos em Linux são fundamentais para a segurança do sistema e privacidade do utilizador, pois ajudam a proteger arquivos contra acesso ou modificações não autorizadas.

Estas permissões têm grande importância no sentido em que cada tipo de ficheiro ou pasta tem consoante sendo do sistema ou do utilizador permissões que apenas permitem ser manipuladas ou alteradas pelo dono/possuidor do arquivo ou root.

Neste laboratório vamos falar da forma numérica de atribuir permissões de acesso a pastas e ficheiros, exemplificando passo a passo como funcionam e como alterá-las consoante as nossas necessidades.

Veja também: Permissões em Diretórios e Ficheiros em Linux - Forma Simbólica

Modo numérico de representar permissões

As permissões de ficheiro em Linux são numéricas quando são representadas por números.

Na forma numérica as permissões são representadas por três dígitos mais 0 e cada dígito corresponde a uma determinada permissão. O zero retira permissões. Nisso temos o seguinte:

  • 4 - (r) este dígito dá ao usuário a permissão para visualizar o ficheiro.
  • 2 - (w) este dá ao usuário a permissão para alterar o ficheiro, seja editar ou deletar.
  • 1 - (x) este dígito dá ao usuário a permissão para executar o ficheiro. Um programa, por exemplo
  • 0 - Este dígito retira uma determinada permissão no ficheiro.

A adição entre os três dígitos (4, 2 e 1) confere permissões a um dado usuário ou grupo de usuários num determinado ficheiro ou directório enquanto o 0 retira permissões.

  • 7 = rwx - permite visualizar, alterar e executar o ficheiro.
  • 6 = rw- - permite visualizar e alterar o ficheiro.
  • 5 = r-x - permite visualizar e executar o ficheiro.
  • 4 = r-- - permite visualizar o ficheiro.
  • 3 = -wx - permite alterar e executar o ficheiro.
  • 2 = -w- - permite alterar o ficheiro.
  • 1 = --x - permite executar o ficheiro.
  • 0 = --- - retira todas as permissões no ficheiro.

No exemplo apresentado na tabela nº 1 um determinado ficheiro tem as permissões de 766

  • Ao usuário foi atribuída a permissão de nível 7, o que corresponde a 4 + 2 + 1 que são (read, write e execute, respetivamente).
  • Ao grupo foi atribuída a permissão de nível 6, o que corresponde a 4 + 2 + 0 (read, write. A permissão de executar foi retirada, daí a existência do 0 no seu lugar).
  • Aos outros usuários foi atribuída a permissão de nível 6 também, o que corresponde a 4 + 2 + 0, que são (read, write. A permissão de executar foi retirada, daí também a existência do 0 no seu lugar).
Tabela nº 1 permissão 766
readwriteexecutepermissões
usuário4217
grupo4206
outros4206
Permissões766

No exemplo apresentado na tabela nº 2 um determinado ficheiro tem as permissões de 755

  • Ao usuário foi atribuída a permissão de nível 7, o que corresponde a 4 + 2 + 1 que são (read, write e execute, respetivamente).
  • Ao grupo foi atribuída a permissão de nível 5, o que corresponde a 4 + 0 + 1 (read, execute. A permissão 'write' foi retirada, daí a existência do 0 no seu lugar).
  • Aos outros usuários foi atribuída a permissão de nível 5 também, o que corresponde a 4 + 0 + 1 (read, execute. A permissão 'write' foi retirada, daí a existência do 0 no seu lugar).
Tabela nº 2 permissão 755
readwriteexecutepermissões
usuário4217
grupo4015
outros4015
Permissões755

No exemplo apresentado na tabela nº 3 um determinado ficheiro tem as permissões de 610

  • Ao usuário foi atribuída a permissão de nível 6, o que corresponde a 4 + 2 + 0 que são (read e write. A permissão de executar foi-lhe retirada como se poderá notar pelo 0 no seu lugar).
  • Ao grupo foi atribuída a permissão de nível 1, o que corresponde a 0 + 0 + 1 (execute. As permissões 'read' e 'write' foram retiradas, daí a existência do 0 nos seus lugares).
  • Aos outros utilizadores foram-lhes retiradas todas as permissões, o que corresponde a 0 + 0 + 0 (As permissões 'read', 'write' e 'execute' foram retiradas, daí a existência do 0 nos seus lugares).
Tabela nº 3 permissão 610
readwriteexecutepermissões
usuário4206
grupo0011
outros0000
Permissões610

Como alterar permissões

Vamos explorar isso na prática para vermos como funciona.

Aqui, estando dentro da pasta Aniversarios (estou usando como exemplo pastas criadas num post anterior: Criar diretórios em terminal Linux do simples ao complexo) e correndo o comando $ ls, o que vemos com este comando é uma lista do conteúdo dentro da pasta Aniversarios sem nenhuma outra informação adicional.

Comando ls, mostrando o conteúdo da pasta Aniversarios

Para obtermos mais informações sobre o conteúdo temos de usar a opção -l junto ao comando ls e correndo o comando $ ls -l, vemos a lista das pastas: Amigos, Filhos, Pais, Trabalho e um ficheiro .txt de nome aniversarios com as respectivas metadados que trazem muitas informações sobre o ficheiro ou diretório e nessas informações temos as seguintes permissões concedidas:

Comando ls com a opção -l, mostrando o conteúdo da pasta Aniversarios assim como os metadados

Se pegarmos da imagem acima vemos o seguinte:

  • No diretório Amigos
    • O usuário (u) que é o dono, tem as permissões de visualizar, alterar e executar: rwx o mesmo que permissão nível 7
    • O grupo (g) que são os usuários que o dono adicionou ao seu grupo, tem as permissões de visualizar e executar: rx, o mesmo que permissão nível 5
    • Outros (o) usuários do sistema têm a permissão de visualizar e executar: rx, o mesmo que permissão nível 5
  • No ficheiro aniversarios.txt
    • O usuário (u) que é o dono, tem as permissões de visualizar e alterar: 6
    • O grupo (g) que são os usuários que o dono adicionou ao seu grupo, só tem a permissão de visualizar: 4
    • Outros (o) usuários do sistema têm unicamente a permissão de visualizar: 4

Nas permissões de um directório, o 1 que corresponde ao (x) (executar) na forma simbólica, permite-nos fazer cd (change directory) e entrar no diretório ou obter a lista do conteúdo do directório com ls .

Para alterar permissões usamos o comando chmod (change file mode). Se quiseres saber mais sobre este comando é só ler o manual do mesmo usando o comando man chmod

Vamos alterar as permissões no ficheiro aniversarios.txt e vamos retirar a permissão de visualização para o grupo e todos os outros (o) utilizadores do sistema.

chmod 600 aniversarios.txt
Exemplo, alterando as permissões do ficheiro aniversarios.txt: Comando chmod 600

Agora vamos alterar as permissões no ficheiro aniversarios.txt e vamos atribuir a permissão de visualização para o grupo (g).

chmod 640 aniversarios.txt
Exemplo, alterando as permissões do ficheiro aniversarios.txt: comando chmod 640

Agora vamos alterar as permissões nos diretórios Filhos e Pais e vamos retirar a permissão de visualização para outros (o).

chmod 751 Filhos/ Pais/
Exemplo, alterando as permissões dos directórios Filhos e Pais, comando chmod 751

Agora vamos alterar as permissões nos diretórios Filhos e Pais e vamos retirar a permissão de visualização para o grupo (g).

chmod 711 Filhos/
Exemplo, alterando as permissões dos directórios Filhos e Pais, comando chmod 711

Agora vamos alterar as permissões nos diretórios Filhos e Pais e vamos atribuir as permissão de visualizar e executar para o grupo (g) e outros (o).

chmod 755 Filhos/ Pais/
Exemplo, alterando as permissões dos directórios Filhos e Pais, comando chmod 755

Neste post falamos sobre Permissões Numéricas, já num outro tínhamos falado sobre Permissões Simbólicas caso queira dar um golpe de vista. Espero que este post tenha servido de alguma utilidade para o entendimento das permissões. Obrigado por cá estares.

Voltar para o início da página

2 comentários:

  1. Como funciona a permissão baseada em 4 digitos? Li em uma materia sobre isso mas não explicou. Poderia acrescentar

    ResponderEliminar
    Respostas
    1. Obrigado por essa dica. Isso ajuda a tornar este blog mais rico em termos de conteúdo. Depois farei um post sobre isso, onde falarei do sticky bit.

      Eliminar