Español

Herramientas de desarrollo · Calculadora Chmod

Cómo leer los permisos ls -l y convertirlos a modo octal

· Cómo funciona

chmod unix flujo de trabajo del desarrollador

cadenas de modo estilo ls mostradas como un diagrama de bits de permisos Unix distinto
Ilustración de vector original de ToolAcre

La cadena de diez caracteres al comienzo de ls -l es un tipo de archivo más nueve bits de permiso. Esta publicación muestra cómo decodificarlo y producir el modo octal que desea chmod, incluidas las letras de bits especiales.

Un ticket con -rw-r-----+ pegado: necesita saber si debe decirle al usuario que ejecute chmod 640 o algo más

Una cadena pegada como -rw-r-----+ contiene más de lo que acepta este analizador. El núcleo reconocido es un cuerpo de permiso de nueve caracteres, precedido opcionalmente por un carácter de tipo de archivo admitido. El signo más al final hace que la entrada sea demasiado larga y se rechaza. Al eliminar ese marcador externo, se deja -rw-r-----, que se convierte en 640: propietario lee /write, lectura del grupo y no tiene permisos para otros.

Esa conversión no decodifica lo que representa el plus más allá de la advertencia del artículo 501 de que una lista larga puede usarlo para las ACL. La calculadora no tiene entradas ni máscara de ACL. Tampoco inspecciona la máquina, el propietario, el grupo o la ruta del billete. Por lo tanto, el modo 640 es el valor de permiso base representado por el núcleo aceptado, no una respuesta completa sobre el acceso efectivo.

El primer carácter es el tipo: guión, d, l, c, b, p y s, y por qué no forma parte del modo.

El primer carácter opcional se trata como un marcador de tipo en lugar de un bit de permiso. El analizador reconoce -, d, l, b, c, p, s, D y ?. Cuando uno aparece antes de nueve posiciones de permiso válidas, se elimina por motivos aritméticos. El propietario, el grupo y otros tripletes resultantes determinan por sí solos el valor octal y las selecciones de matriz.

Este comportamiento es fácil de verificar con entradas equivalentes. Tanto rwxr-x--- como -rwxr-x--- producen 750 porque el guión inicial no aporta ningún bit de modo. Un marcador de directorio puede preceder al mismo cuerpo y aun así producir el mismo número entero. El selector de destino controla el texto explicativo por separado, por lo que aceptar un carácter de tipo no significa que el navegador haya descubierto o abierto ese objeto.

Nueve caracteres en tres grupos: propietario, grupo y otros, siempre en orden rwx, con un guión para cada bit que está desactivado.

Las nueve posiciones de permiso forman tres triples fijos en propietario, grupo y otro orden. Dentro de cada triplete, leer ocupa la primera posición, escribir la segunda y ejecutar la tercera. Un guión significa que el bit correspondiente está desactivado. La validación de posición específica rechaza una letra mal colocada en lugar de adivinar, por lo que una r en una posición de escritura no puede convertirse silenciosamente en otro permiso.

Cada triple aceptado se asigna a un dígito octal según los pesos del artículo 501: la lectura es 4, la escritura es 2 y la ejecución es 1. La matriz muestra los mismos indicadores que las casillas de verificación y reconstruye el número entero cuando uno cambia. Se aceptan letras especiales solo en posiciones de ejecución, preservando setuid, setgid o sticky junto con el estado de ejecución subyacente.

Ejemplo resuelto: -rwxr-x--- a 750 — asignando 4, 2, 1 a cada letra y sumando por grupo

Convierta -rwxr-x--- ignorando el marcador de tipo inicial y dividiendo el cuerpo en rwx, r-x y ---. El propietario tiene 4+2+1, lo que produce 7. El grupo tiene 4+1, lo que produce 5. Otro no tiene ningún bit habilitado, lo que produce 0. La calculadora devuelve 750 y selecciona los nueve cuadros de permisos ordinarios correspondientes.

La verificación inversa debería aparecer en el mismo cuerpo del texto. Ingrese 750 y el campo simbólico se convierte en rwxr-x---; elija un marcador de archivo normal para el formulario mostrado y se convertirá en -rwxr-x---. La vista previa de la tarea tiene una sintaxis diferente: u=rwx,g=rx,o=. Los tres puntos de vista describen un modo fijo, mientras que la propiedad y la sabiduría de aplicarlo siguen sin resolverse.

Los signos más y arroba al final: + significa que existen entradas de ACL, @ significa atributos extendidos en macOS y ninguno de los dos forma parte del modo.

Los signos más y arroba al final son marcadores de metadatos en el esquema, pero el hecho implementado es más limitado: este analizador rechaza cualquiera de los dos porque la entrada aceptada termina después del cuerpo del permiso. El artículo 501 identifica específicamente un plus final con las ACL. CHMOD_SOURCES no proporciona una interpretación equivalente para un signo de arroba, por lo que esta sección no le asigna un significado de sistema operativo que no sea compatible con el repositorio.

No elimine ningún marcador a ciegas cuando el acceso efectivo sea importante. En su lugar, separe el núcleo de nueve o diez caracteres aceptado para la conversión al modo base e investigue cualquier resto con evidencia del sistema de origen. La calculadora puede mostrar que rw-r----- significa 640. No puede explicar metadatos adicionales, leer atributos extendidos ni determinar si otro mecanismo de control de acceso cambia lo que un usuario o proceso puede hacer.

Los signos más y arroba al final son marcadores de metadatos que este analizador rechaza

Los comandos de estadísticas externos no se ejecutan en la calculadora del navegador. La página no tiene acceso al ejecutor de comandos ni al sistema de archivos; su campo de ruta existe solo para construir texto chmod entre comillas para su visualización. En consecuencia, no puede recuperar un modo actual, comparar la salida de un comando específico de la plataforma o certificar que una cadena pegada proviene de una utilidad en particular. El usuario debe proporcionar el valor a convertir.

Una vez que se proporciona un modo confiable, el navegador proporciona una verificación de representación independiente. Ingrese el núcleo simbólico y compare su resultado octal, matriz, resumen y vista previa de la tarea. El acuerdo detecta errores de transcripción y aritméticos dentro del formato admitido. No valida el comando de colección externa, no revela la propiedad ni prueba que los permisos representados son efectivos en el objeto del cual se copió el texto.

Los comandos de estadísticas externos no se ejecutan en la calculadora del navegador

La decodificación de ACL permanece fuera de la ruta. Su modelo contiene propietario, grupo, otros y tres bits especiales, sin entradas con nombre ni máscara ACL. La decodificación de permisos de Windows está igualmente ausente: no existe un modelo de identidad de Windows, una sintaxis de entrada de control de acceso ni un descubrimiento de plataforma. Se puede convertir un núcleo estilo Unix de nueve posiciones, pero a partir de ese resultado no se puede reconstruir ningún sistema de permisos adicional.

Este límite también limita el diagnóstico. Un modo base que parece suficiente no prueba que una ACL u otra política sea irrelevante, mientras que un modo restrictivo no identifica todas las concesiones posibles. La calculadora calcula sólo los doce bits representados. Utilice su resultado para indicar el modo ordinario con precisión, luego reserve las afirmaciones sobre la autorización efectiva para herramientas y documentación que realmente exponen el sistema de permisos externo.

La decodificación de permisos de ACL y Windows permanece fuera de la ruta

La lectura de un modo estilo ls se vuelve mecánica una vez que se aísla el núcleo aceptado. Elimine un carácter de tipo principal reconocido, divida las nueve posiciones restantes en propietario, grupo y otras, y lea el total 4, escriba 2 y ejecute 1 dentro de cada triplete. La calculadora realiza esa conversión y valida letras específicas de la posición, incluidas las formas s, S, t y T implementadas.

Mantenga la conclusión proporcional a la entrada. Una conversión exitosa demuestra que la cadena aceptada se asigna consistentemente a un modo octal, matriz, resumen y asignación generada. No ejecuta stat, no inspecciona la ruta, no decodifica un marcador final, no identifica la propiedad ni aplica chmod. Esos límites hacen que el resultado sea útil: es exacto sobre la aritmética en modo base y no dice nada sobre la evidencia que nunca recopiló.