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.