Diferença entre permissões de arquivos de três e quatro dígitos?

11

Recentemente, eu queria saber qual é a diferença entre permissões de arquivo numérico de três e quatro dígitos. Eu obtenho as permissões numéricas executando stat --format "%a" $file_name. Qual é a diferença entre 0644 e 644?

NerdOfCode
fonte
Eu queria saber a diferença entre quatro e três permissões de arquivo dígitos ...
NerdOfCode

Respostas:

11

O primeiro dígito em uma permissão de quatro dígitos é a soma do ID do usuário definido (4), do grupo definido (2) e do adesivo (1). Uma permissão de três dígitos é como uma permissão de quatro dígitos com o primeiro dígito definido como zero. Portanto:

  • 0644 é exatamente o mesmo que 644.
  • 1644 é como 644, mas o bit pegajoso também é definido
  • 4644 é como 644, mas o bit de ID do usuário definido também é definido.

Exemplos de usos para as permissões do quarto dígito

Se um arquivo com o ID do usuário definido for executado, ele será executado como se fosse pelo proprietário do arquivo e não pelo usuário que está executando. Assim, por exemplo, /bin/mountgeralmente é de propriedade do root e possui permissões 4755, em que o 4 significa que, mesmo se executado por um usuário normal, ele será executado com os privilégios do proprietário (root).

Definir o ID do grupo em um diretório é útil para compartilhar arquivos.

O bit fixo é usado em diretórios como /tmppara que todos os usuários possam criar arquivos, mas impede que os não proprietários excluam os arquivos de outras pessoas. Assim, as permissões de /tmpsão tipicamente 1777, em que 1 significa que o bit adesivo está definido.

Documentação

De man chmod:

Um modo numérico é de um a quatro dígitos octais (0-7), derivado da soma dos bits com os valores 4, 2 e 1. Os dígitos omitidos são assumidos como zeros à esquerda. O primeiro dígito seleciona o ID do usuário definido (4) e o ID do grupo definido (2) e os atributos de exclusão restrita ou aderente (1). O segundo dígito seleciona permissões para o usuário que possui o arquivo: ler (4), escrever (2) e executar (1); o terceiro seleciona permissões para outros usuários no grupo do arquivo, com os mesmos valores; e o quarto para outros usuários que não estão no grupo do arquivo, com os mesmos valores.

John1024
fonte