Arquivos e Permissões Linux

Dando continuidade à nossa série baseada no roadmap.sh/linux, hoje vamos mergulhar em um tema essencial para qualquer usuário de Linux: o gerenciamento de arquivos. Neste artigo, exploraremos como trabalhar com arquivos no Linux, focando especialmente em como manipulá-los e entender suas permissões. Compreender a estrutura de arquivos e como as permissões funcionam é fundamental para garantir a segurança e eficiência ao interagir com o sistema. Vamos desvendar esses conceitos de forma prática e direta para que você possa dominar o ambiente Linux com confiança.

Estrutura das permissões

Cada arquivo ou diretório no Linux tem um conjunto de permissões que se aplica a três categorias de usuários:

  1. Usuário (u): O proprietário do arquivo.
  2. Grupo (g): Os usuários que pertencem ao mesmo grupo que o proprietário.
  3. Outros (o): Todos os outros usuários.

Tipos de permissões

Existem três tipos principais de permissões que podem ser atribuídas:

  • Leitura (r): Permissão para ler o conteúdo do arquivo ou listar o conteúdo do diretório.
  • Escrita (w): Permissão para modificar o conteúdo do arquivo ou alterar o conteúdo do diretório (como criar, remover ou renomear arquivos dentro do diretório).
  • Execução (x): Permissão para executar o arquivo (se for um programa ou script) ou entrar no diretório e acessar arquivos dentro dele.

Exibindo Permissões

Para visualizar as permissões de um arquivo ou diretório, use o comando ls -l:

Decodificando permissões

A saída -rwxr-xr-- pode ser dividida em quatro partes:

  1. Tipo de arquivo: O primeiro caractere indica o tipo de arquivo:
    • “: Arquivo regular.
    • d: Diretório.
    • l: Link simbólico.
  2. Permissões do proprietário (usuário): Os próximos três caracteres (rwx) indicam as permissões do proprietário do arquivo:
    • r: Leitura
    • w: Escrita
    • x: Execução
  3. Permissões do grupo: Os três caracteres seguintes (r-x) indicam as permissões para o grupo:
    • r: Leitura
    • “: Sem permissão de escrita
    • x: Execução
  4. Permissões para outros: Os últimos três caracteres (r--) indicam as permissões para outros usuários:
    • r: Leitura
    • “: Sem permissão de escrita
    • “: Sem permissão de execução

Alterando permissões

Usando a Notação Simbólica

A notação simbólica permite modificar as permissões de forma granular.

chmod u+x arquivo.txt

Explicação:

  • u+x: Adiciona (+) permissão de execução (x) ao proprietário (u) do arquivo.
  • Outras combinações incluem:
    • g para grupo
    • o para outros
    • a para todos (usuário, grupo e outros)

Usando a Notação Numérica (Octal)

A notação numérica usa números para representar as permissões:

  • 4: Leitura (r)
  • 2: Escrita (w)
  • 1: Execução (x)
  • 0: Sem permissão

Cada conjunto de permissões (usuário, grupo, outros) é representado por um número somando os valores:

  • rwx = 4 + 2 + 1 = 7
  • rw- = 4 + 2 + 0 = 6
  • r-x = 4 + 0 + 1 = 5

Por exemplo, para dar ao usuário permissões completas (7), ao grupo permissão de leitura e execução (5), e a outros apenas leitura (4), você usaria:

chmod 754 arquivo.txt

Permissões proprietário e grupo

Alterando Proprietário e Grupo

O comando chown é usado para alterar o proprietário de um arquivo ou diretório:

chown novo_usuario arquivo.txt

Para alterar tanto o proprietário quanto o grupo:

chown novo_usuario:novo_grupo arquivo.txt

O comando chgrp pode ser usado para mudar apenas o grupo:

chgrp novo_grupo arquivo.txt

Permissões Especiais

Além das permissões básicas, há permissões especiais que podem ser configuradas em arquivos e diretórios:

Setuid (SUID): Aplicável a arquivos executáveis, permite que o arquivo seja executado com as permissões do proprietário do arquivo, não do usuário que o executa. Representado por s no lugar de x nas permissões do proprietário.

chmod u+s arquivo.txt

Setgid (SGID): Em diretórios, garante que os arquivos criados dentro do diretório herdem o grupo do diretório, em vez do grupo primário do usuário que os criou. Para arquivos executáveis, funciona de forma semelhante ao SUID, mas com as permissões de grupo. Representado por s no lugar de x nas permissões de grupo.

chmod g+s arquivo.txt

Sticky bit: Aplicável a diretórios, impede que usuários apaguem ou renomeiem arquivos de outros usuários no diretório, mesmo que tenham permissão de escrita. Representado por t no lugar de x nas permissões de outros.

chmod +t /diretorio
Rolar para cima