¿Existe un convertidor basado en web entre rwx y la versión octal?


27

Nunca puedo recordar lo que la conversión es de algo parecido rw-r--r--a 644. ¿Hay un simple convertidor basado en web entre los 2?


Es solo un número octal con los dígitos binarios asignados a rwxrwxrwx (usuario, grupo, otro).
Keith

esto se puede calcular fácilmente a mano. o pueden ser mostrados por stat -c...
fromnaboo

Respuestas:


26

Este sitio proporciona una forma interactiva de ver qué bits de permisos se configuran cuando se configuran / desactivan varios bits.

La "calculadora" se ve así:

  ss # 1


55
Obtuve esto buscando en Google "herramienta de permisos de archivos octales", por cierto. Google siempre es un excelente primer lugar para consultar cuando tienes una pregunta.
J. Taylor

2
Pst, intenté buscar, pero no pude encontrar el término de búsqueda correcto. Lamento molestarte tanto ... y darte un poco de reputación.
Darryl Hein

3
Darryl: No me molestaste. Estoy tratando de ayudarlo a encontrar respuestas a las preguntas más fácilmente por su cuenta, para que cuando llegue el momento en que tenga una pregunta que nadie esté dispuesto a responder por usted, pueda responderla usted mismo.
J. Taylor

3
El enlace está roto ahora, por lo que generalmente desalentamos las respuestas solo de enlace, pero es difícil criticar cuando la pregunta solicitó un enlace
Michael Mrozek

3
El enlace ya no está roto.

11

¿Por qué necesitas un número octal en primer lugar?

Yo siempre 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) es fácil de recordar. Sin embargo, puede confundir o: = propietario? o: = otro? pero ¿cuál sería u si o = dueño? u: = usuario, por lo tanto o = otro.

Algunos comandos solo les gustan los permisos numéricos. De acuerdo, no es difícil de calcular, si recuerdas las dos secuencias: ugo + rwx.

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

Si, muy artificial.

Cuando se trata de sy SI, debe consultar el manual. Quizás google la próxima vez. :)


8

Octal se usa para permisos porque es una conversión fácil . Cada grupo de rwxformas un dígito octal. Todo lo que debes recordar son las primeras 3 potencias 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

Me gusta esta calculadora de permisos:
http://file-permissions.ninja


Normalmente, marcaría esto por ser una respuesta de solo enlace, pero como el OP solicitó explícitamente un sitio web, lo dejaré pasar. Sin embargo, tenga en cuenta que las respuestas de solo enlace a menudo se desaconsejan.
HalosGhost

Este sitio no parece funcionar en este momento. Veo errores "403" en la consola.
Ryan

4

Este es, con mucho, el más conveniente y, además, creo que es exactamente lo que solicitó originalmente:

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

Es completamente interactivo, aunque no puede editar la cadena "-rx -------", pero sí puede ver el octal o las casillas de verificación. Hacer cualquiera actualiza la otra.

Mi herramienta favorita para esto

De la misma página:

Modo numérico (absoluto):

De uno a cuatro dígitos octales Se supone que los dígitos omitidos son ceros a la izquierda.

El primer dígito = selecciona los atributos para el ID de usuario establecido (4) y el ID de grupo establecido (2) y guarda la imagen de texto (1) El segundo dígito = permisos para el usuario propietario del archivo: lectura (4), escritura (2) y ejecutar (1) El tercer dígito = permisos para otros usuarios en el grupo del archivo: leer (4), escribir (2) y ejecutar (1) El cuarto dígito = permisos para otros usuarios que NO están en el grupo del archivo: leer ( 4), escribe (2) y ejecuta (1)

El valor octal (0-7) se calcula sumando los valores para cada dígito Usuario (rwx) = 4 + 2 + 1 = 7 Grupo (rx) = 4 + 1 = 5 Mundo (rx) = 4 + 1 = 5 modo chmod = 0755


4

Tengo este pequeño alias que puedes poner en tu .bashrc (o equivalente).

DESCARGO DE RESPONSABILIDAD: No soy el autor del guión, y no estoy seguro de quién lo escribió ... pero le apoyo por hacerlo.

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}'"

1
Muchas gracias por eso, @nico: aquí está el mismo código convertido como perl one-liner, y utilizado en 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");'imprimirá " 776". ¡Aclamaciones!
sdaau
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.