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?
bash
permissions
files
NerdOfCode
fonte
fonte
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:
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/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.Documentação
De
man chmod
:fonte