Skip to content
Latchkey

O Que São Permissões de Arquivo? Leitura, Escrita, Execução

Permissões de arquivo no Unix controlam quem pode ler, escrever ou executar um arquivo, definidas para o dono, o grupo e todos os demais.

Todo arquivo em um sistema Unix carrega permissões que decidem quem pode lê-lo, alterá-lo ou executá-lo. Elas são divididas em três classes: o dono, o grupo e os outros. Em CI, problemas de permissão aparecem como "permission denied" quando um script em checkout não tem o bit de execução, o que é um obstáculo comum.

O modelo de permissões

Cada arquivo tem três tipos de permissão, leitura (r), escrita (w) e execução (x), para três classes: dono, grupo e outros. Uma listagem como -rwxr-xr-- mostra todos os nove bits de uma vez.

O que cada permissão significa

  • Leitura: ver o conteúdo de um arquivo ou listar um diretório.
  • Escrita: modificar um arquivo ou adicionar/remover entradas em um diretório.
  • Execução: rodar um arquivo como programa, ou entrar em um diretório.

Lendo os bits

Permissões costumam ser escritas como três dígitos octais, como 755 ou 644. Cada dígito é a soma de leitura (4), escrita (2) e execução (1) para uma classe, então 7 é rwx e 6 é rw-.

O bit de execução em scripts

Um script precisa do bit de execução para ser rodado diretamente com ./script.sh. Sem ele, você recebe "permission denied", embora rodar bash script.sh ainda funcione porque isso ignora o bit.

Permissões em CI

Uma falha comum de CI é um script commitado que perdeu seu bit de execução, então ./deploy.sh falha com "permission denied". Ou commite o arquivo com o bit de execução definido, ou rode-o explicitamente via bash deploy.sh para contornar o problema.

Scripts executáveis em runners gerenciados

Nos runners da Latchkey, os arquivos em checkout mantêm as permissões armazenadas no Git. Se um script não for executável, defina o bit com chmod +x na etapa ou invoque-o diretamente pelo seu interpretador.

Principais conclusões

  • Permissões de arquivo concedem leitura, escrita e execução ao dono, grupo e outros.
  • Elas costumam ser escritas em octal, como 755, somando 4/2/1 por classe.
  • Em CI, um bit de execução ausente causa "permission denied" em scripts.

Guias relacionados