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?
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?
Respostas:
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:
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/mount
geralmente é 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 /tmp
para 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 /tmp
são tipicamente 1777, em que 1 significa que o bit adesivo está definido.
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.