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

8

Eu estava me perguntando recentemente qual é a diferença entre as 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?

    
por NerdOfCode 14.11.2017 / 01:49

1 resposta

9

O primeiro dígito em uma permissão de quatro dígitos é a soma de conjunto de ID de usuário (4), conjunto de id de grupo (2) e pegajoso (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. Assim:

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

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

Se um arquivo com ID de 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/mount é comumente de propriedade de root e possui permissões 4755 onde 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 pegajoso é usado em diretórios como /tmp para que todos os usuários possam criar arquivos, mas impede que não-proprietários excluam arquivos de outras pessoas. Assim, as permissões de /tmp são geralmente 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 octal (0-7), derivado da soma dos bits com valores 4, 2 e 1. Os dígitos omitidos são   assumido como sendo zeros à esquerda. O primeiro    dígito seleciona o ID de usuário definido (4) e define os atributos ID de grupo (2) e de exclusão restrita ou pegajosa (1). O segundo dígito   seleciona permissões para o usuário que possui o    file: read (4), write (2) e execute (1); o terceiro seleciona permissões para outros usuários no grupo do arquivo, com os mesmos valores;   eo quarto para outros usuários não em    o grupo do arquivo, com os mesmos valores.

    
por John1024 14.11.2017 / 02:14