
Recentemente, fiquei me perguntando qual é a diferença entre permissões de arquivo numérico de três e quatro dígitos. Obtenho as permissões numéricas executando stat --format "%a" $file_name
.Qual é a diferença entre 0644 e 644?
Responder1
O primeiro dígito em uma permissão de quatro dígitos é a soma dedefinir ID do usuário (4),definir ID do grupo(2) epegajoso(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. Por isso:
- 0644 é exatamente igual a 644.
- 1644 é como 644, mas o sticky bit também está definido
- 4644 é como 644, mas o bit de ID do usuário definido também está 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 executa a execução. Assim, por exemplo, /bin/mount
é comumente propriedade do 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 sticky bit é usado em diretórios /tmp
para que todos os usuários possam criar arquivos, mas evita que não proprietários excluam arquivos de outras pessoas. Assim, as permissões /tmp
são normalmente 1777, onde 1 significa que o sticky bit está definido.
Documentação
De man chmod
:
Um modo numérico é de um a quatro dígitos octais (0-7), derivados da soma dos bits com os valores 4, 2 e 1. Os dígitos omitidos são considerados zeros à esquerda. O primeiro dígito seleciona o ID do usuário definido (4) e o ID do grupo definido (2) e atributos de exclusão restrita ou fixos (1). O segundo dígito seleciona permissões para o usuário proprietário do arquivo: leitura (4), gravação (2) e execução (1); a terceira seleciona permissões para outros usuários do grupo do arquivo, com os mesmos valores; e a quarta para outros usuários que não fazem parte do grupo do arquivo, com os mesmos valores.