Existe um conversor baseado na web entre rwx e a versão octal?


27

Eu nunca consigo lembrar o que a conversão é de algo como rw-r--r--a 644. Existe um simples conversor baseado na Web entre os 2?


É apenas um número octal com os dígitos binários sendo mapeados para rwxrwxrwx (usuário, grupo, outro).
Keith

isso pode ser facilmente calculado manualmente. ou eles podem ser exibidos por stat -c...
fromnaboo

Respostas:


26

Este site fornece uma maneira interativa de ver quais bits de permissões são definidos quando vários bits são definidos / não definidos.

A "calculadora" fica assim:

  ss # 1


5
Eu peguei isso no Google para "ferramenta de permissões de arquivo octal", a propósito. O Google é sempre um ótimo primeiro lugar para verificar quando você tem uma pergunta.
31411 J. Taylor

2
Pst, tentei pesquisar, mas não consegui encontrar o termo de pesquisa correto. Desculpe incomodá-lo tanto ... e dar-lhe algum representante.
Darryl Hein

3
Darryl - Você não me incomodou. Estou tentando ajudá-lo a encontrar respostas para as perguntas com mais facilidade por conta própria, para que, quando chegar a hora de você fazer uma pergunta que ninguém esteja disposto a responder por você, você possa responder você mesmo.
J. Taylor

3
O link está quebrado agora, e é por isso que geralmente desencorajamos respostas somente para links, mas é difícil criticar quando a pergunta é feita por um link
Michael Mrozek

3
O link não está mais quebrado.

11

Por que você precisa do número octal em primeiro lugar?

Eu sempre uso:

chmod o+x file   # all + eXecute permissions
chmod g-w file   # group - write perms
chmod u=r file   # user can just read
chmod ug=rw file # user,group = read and write
chmod a+w file   # user,group,others + write 

ugo (a) é fácil de lembrar. No entanto, você pode confundir o: = owner? o: = outro? mas o que seria você, se o = dono? u: = usuário, portanto o = outro.

Alguns comandos, como apenas permissões numéricas. Ok, não é difícil de calcular, se você se lembrar das duas sequências: ugo + rwx.

    r   w   x  | Sum
u   4   2   1  | 7
g   4   -   1  |  5
o   4   2   -  |   6
---------------------
                 756

Sim, muito artificial.

Quando se trata de SI e SI, consulte o manual. Talvez google da próxima vez. :)


8

Octal é usado para permissões porque é uma conversão fácil . Cada grupo de rwxforma um dígito octal. Tudo o que você precisa lembrar são os 3 primeiros poderes de 2: 4, 2, 1. r= 4, w= 2, x= 1.

rw-r--r--= 110 100 100= 4+2+0 4+0+0 4+0+0=644


5

Eu gosto desta calculadora de permissões:
http://file-permissions.ninja


Normalmente, eu sinalizaria isso por ser uma resposta apenas de link, mas, como o OP estava solicitando explicitamente um site, deixarei passar. Esteja ciente de que as respostas somente para links geralmente são desencorajadas.
HalosGhost

Este site parece não funcionar no momento. Eu vejo erros "403" no console.
Ryan

4

Este é de longe o mais conveniente e, além disso, acredito, exatamente o que você pediu originalmente:

http://ss64.com/osx/chmod.html

É totalmente interativo, embora você não possa editar a sequência "-rx -------", mas pode octal ou as caixas de seleção. Fazer uma atualiza a outra.

Minha ferramenta favorita apenas para isso

Da mesma página:

Modo numérico (absoluto):

De um a quatro dígitos octais Todos os dígitos omitidos são assumidos como zeros à esquerda.

O primeiro dígito = seleciona atributos para o ID do usuário definido (4) e o ID do grupo (2) e salva a imagem de texto (1) O segundo dígito = permissões para o usuário proprietário do arquivo: read (4), write (2) , e execute (1) O terceiro dígito = permissões para outros usuários no grupo do arquivo: leia (4), escreva (2) e execute (1) O quarto dígito = permissões para outros usuários NÃO no grupo do arquivo: read ( 4), escreva (2) e execute (1)

O valor octal (0-7) é calculado somando os valores para cada dígito Usuário (rwx) = 4 + 2 + 1 = 7 Grupo (rx) = 4 + 1 = 5 Mundo (rx) = 4 + 1 = 5 modo chmod = 0755


4

Eu tenho esse pequeno apelido que você pode colocar no seu .bashrc (ou equivalente).

AVISO LEGAL: Eu não sou o autor do roteiro, e não tenho certeza de quem o escreveu ... mas o sustento por isso.

alias lsp="ls -l --color | 
      awk '{k=0; for(i=0;i<=8;i++) k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));
      if (k) printf(\" %0o \",k); print}'"

11
Muito obrigado por isso, @nico - aqui está o mesmo código convertido como um liner perl e usado no bash: echo 'rwxrwxrw-' | perl -ne 'BEGIN{sub conv{ chomp(my $ins=shift); my $k=0; for(my $i=0;$i<=8;$i++) { my $tmps = ( substr($ins, $i, 1) =~ /[rwx]/ ); $k+= ( $tmps*(2**(8-$i)) ); }; if ($k) { sprintf(" %0o ", $k); } else { "??" ; }; }; } print(conv($_)."\n");'imprimiria " 776". Felicidades!
Sdaau
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.