Programaticamente ou você só precisa saber como traduzir?
Mattdm
Estou com preguiça de traduzir :) stat está bem por um momento para mim.
CND
9
O que você quer dizer com "definir o mesmo"? Você já tem um arquivo com permissão -rw-r - r-- e deseja definir outro arquivo com as mesmas permissões? Então veja se o seu chmodsuporte --reference: “--reference = RFILE usa o modo RFILE em vez dos valores MODE” - man chmod.
stat -c %a /path/to/fileé o truque de mágica que você precisa.
fromnaboo
e a resposta está no bloco de acesso acima. O arquivo que ele usou no exemplo tem um conjunto de acesso diferente daquele da pergunta. O acesso a um em questão teria mostrado: (0644 / rw-r - r--)
nycynik
65
r=4
w=2
x=1
em todo grupo. Seu exemplo é 6 (r + w = 4 + 2) 4 (r = 4) 4 (r = 4).
O número do modo de permissões completas é um número octal de 4 dígitos, embora na maioria das vezes você use apenas os três dígitos menos significativos. Adicione cada grupo na cadeia de permissões, usando r = 4, w = 2, x = 1. Por exemplo:
Agora, às vezes, você verá um modestring estranho como este:
-rwsr-xr-T
O quarto dígito está sobrecarregado nos xbits na modestring. Se você vir uma letra que xnão esteja lá, significa que um desses bits de quarto dígito "especiais" está definido e, se a letra estiver em minúscula, xtambém será definida para essa posição. Portanto, a tradução para este é:
4 2 1
421421421
-rwsr-xr-T
+ + + -- s+_+T = 4+0+1 = 5
\_/ -- r+w+s = 4+2+1 = 7 (s is lowercase, so 1)
\_/ -- r+_+x = 4+0+1 = 5
\_/ -- r+_+T = 4+0+0 = 4 (T is uppercase, so 0) => 05754
A maneira padrão do UNIX de mostrar que um número é octal é iniciá-lo com um zero. O GNU chmodassumirá que o modo que você está dando é octal de qualquer maneira, mas é mais seguro acrescentar o zero.
Finalmente, se você +vir um no final da modestring:
-rwxr-xr-x+
isso significa que o arquivo possui permissões estendidas e você precisará de mais do que chmod. Olhe nos comandos setfacle getfacl, para iniciantes.
chmod
suporte--reference
: “--reference = RFILE usa o modo RFILE em vez dos valores MODE” - man chmod.Respostas:
Verifique a
stat
saída:fonte
stat -c %a /path/to/file
é o truque de mágica que você precisa.em todo grupo. Seu exemplo é 6 (r + w = 4 + 2) 4 (r = 4) 4 (r = 4).
fonte
O número do modo de permissões completas é um número octal de 4 dígitos, embora na maioria das vezes você use apenas os três dígitos menos significativos. Adicione cada grupo na cadeia de permissões, usando r = 4, w = 2, x = 1. Por exemplo:
Agora, às vezes, você verá um modestring estranho como este:
O quarto dígito está sobrecarregado nos
x
bits na modestring. Se você vir uma letra quex
não esteja lá, significa que um desses bits de quarto dígito "especiais" está definido e, se a letra estiver em minúscula,x
também será definida para essa posição. Portanto, a tradução para este é:A maneira padrão do UNIX de mostrar que um número é octal é iniciá-lo com um zero. O GNU
chmod
assumirá que o modo que você está dando é octal de qualquer maneira, mas é mais seguro acrescentar o zero.Finalmente, se você
+
vir um no final da modestring:isso significa que o arquivo possui permissões estendidas e você precisará de mais do que
chmod
. Olhe nos comandossetfacl
egetfacl
, para iniciantes.fonte
Isso pode ser simples
fonte
Permissões são apenas a representação em cadeia de um número binário.
O
0
é representado principalmente por-
, o resto são letras.básico
Para permissões básicas:
Converta tudo
-
e maiúsculasS
ouT
para0
, o resto deve representar1
.O número binário resultante assim construído deve ser impresso como octal:
Em uma linha:
Correção de erros e detectar os outros 3 bits
1000
,2000
ou4000
requerer mais algum código:fonte
Obtenha a lista de arquivos com seus valores de permissão string e hexadecimal. Colocando% N no final para facilitar a saída do Excel.
Isso encontrará todos os arquivos com uma permissão hexadecimal específica.
fonte
Para todos os arquivos simultâneos em um diretório
Para todos os arquivos
fonte