Modo de arquivo no formato octal de 7 dígitos

0

rpm --dump imprimirá o modo de arquivo no formato octal de 7 dígitos:

$ rpm -q --dump rpm | grep -E '/usr/bin/rpmdb|/var/lib/rpm ' | cut -d' ' -f1,5
/usr/bin/rpmdb 0100755
/var/lib/rpm 040755
$

O que todos esses dígitos significam? Eu acho que alguns deles serão relacionados ao tipo de arquivo, mas posso reproduzir a mesma string, já que eu tenho um arquivo existente e ferramentas de linha de comando padrão (+ perl / python, etc., se necessário)?

Eu olhei para rpm (1), que não revela nada (apenas chama o campo "mode"), e stat (1), que apenas menciona o modo usual de 4 dígitos. O mais próximo que eu tenho é essa outra pergunta sobre o formato de 6 dígitos no AIX .

Edit: Acabei de notar que às vezes são 6 dígitos; questão continua a ser basicamente a mesma.

    
por Alois Mahdal 21.02.2018 / 18:31

1 resposta

4

Este é o campo st_mode da estrutura stat : ele codifica o tipo de arquivo e os bits de modo. Do man 2 stat (ou talvez man 7 inode ) em um sistema linux e procure a seção "O tipo e o modo do arquivo". Por exemplo. 0100755 significa "arquivo regular com o modo 755" e 040755 significa "diretório com o modo 755".

BTW, o 0 inicial significa "octal", já que esses valores são especificados nos arquivos de cabeçalho. O número de dígitos é irrelevante: é exatamente o que é necessário para conter o valor total.

    
por 21.02.2018 / 18:41

Tags