Herramientas de desarrollo · Calculadora Chmod
Por qué chmod usa octal: la taquigrafía base-8 y de dónde viene
· Antecedentes
chmod unix control de acceso
Octal parece arbitrario hasta que notas que un dígito contiene exactamente tres bits. Esta publicación explica el ajuste entre la base 8 y rwx, el hábito de la era DEC que hizo que el octal fuera natural y la convención del cero inicial.
Por qué 755 y no 493: el mismo modo en decimal no significa nada para nadie, y hay una razón por la que ganó octal
El valor decimal 493 y el octal 755 pueden representar el mismo número entero, pero 755 expone la agrupación de permisos directamente. Cada dígito mostrado corresponde a una clase y cada clase contiene exactamente tres opciones binarias. La calculadora funciona a partir de ese ajuste aritmético; no necesita una historia histórica para mostrar por qué octal es legible para los modos rwx.
Ingrese 755 y la salida se convierte en rwxr-xr-x. El propietario recibe 7, grupo 5 y otro 5. Convertir el mismo número entero en una etiqueta decimal desagrupada ocultaría esos límites de clase. Esto explica la utilidad de la notación dentro del modelo implementado sin afirmar por qué cada comando o plataforma externa la adoptó.
Tres bits por dígito: cómo la base 8 agrupa el binario en triples que se alinean exactamente con r, w y x
Un dígito de base ocho abarca los valores del cero al siete, exactamente los totales disponibles de tres bits independientes ponderados 4, 2 y 1. Las combinaciones se asignan claramente: 0 es ---, 1 es --x, 2 es -w-, 3 es -wx, 4 es r--, 5 es r-x, 6 es rw-, y 7 es rwx.
Por lo tanto, tres dígitos ordinarios se alinean con propietario, grupo y otros. Para 640, los triples binarios son 110, 100 y 000, lo que produce rw-r-----. La matriz de casillas de verificación hace visible la misma agrupación sin requerir notación binaria. Cambiar un permiso cambia solo el total de clase correspondiente y su posición simbólica asociada.
El hábito del hardware: las máquinas DEC en las que se ejecutaba Unix temprano estaban documentadas en octal, por lo que los programadores ya pensaban en ello
Las fuentes del repositorio no establecen un linaje de hardware para la notación octal. Contienen máscaras de bits de JavaScript, reglas del analizador, pruebas y controles de interfaz de usuario, no documentación para procesadores o entornos de desarrollo anteriores. Cualquier afirmación de que una cultura de máquina particular provocó la adopción necesitaría evidencia histórica más allá de los archivos permitidos para este artículo.
La explicación respaldada por la fuente es aritmética. Tres bits tienen ocho combinaciones posibles, por lo que un dígito de base ocho captura un triple rwx sin cruzar un límite de clase. Esa relación se puede demostrar en cada resultado de la calculadora. Sigue siendo válido independientemente de que finalmente se proporcione o no un relato histórico más amplio a partir de fuentes primarias.
El historial de hardware no está establecido por las fuentes del repositorio
El analizador acepta de uno a cuatro dígitos octales y elimina un prefijo 0o opcional. En consecuencia, 644, 0644 y 0o644 se resuelven con el mismo valor. Los dígitos 8 y 9 se rechazan con una explicación específica porque ninguno pertenece a la base ocho y el texto con formato incorrecto no se adivina en un modo válido.
Un dígito significativo inicial lleva bits especiales en lugar de otra clase ordinaria. Sus pesos 4, 2 y 1 representan setuid, setgid y sticky, mientras que los dígitos finales conservan el propietario, el grupo y otros. El formateador muestra tres dígitos cuando no se establece ningún bit especial y cuatro cuando se requiere uno, a menos que se solicite explícitamente una salida de cuatro dígitos.
Formularios iniciales aceptados y el dígito de bit especial en este analizador
Al convertir 0644 en triples se obtienen 6, 4 y 4. En binario, esos son 110, 100 y 100, por lo que el resultado simbólico es rw-r--r--. El propietario ha leído y escrito, mientras que el grupo y otros han leído sólo. Cada vista se deriva del mismo número entero, lo que permite una verificación directa de la coherencia.
Revertir el proceso llega al mismo resultado. Comience con rw-r--r--, agregue 4 y 2 para el propietario, tome 4 para el grupo y tome 4 para otros. Los dígitos son 644. El cero inicial opcional aceptado por el analizador no agrega un bit especial; deja el valor numérico sin cambios.
Por qué el hexadecimal nunca tomó el control: dos dígitos hexadecimales no se dividen claramente en tres clases
El hexadecimal puede codificar el número entero, pero sus límites de dígitos de cuatro bits no se alinean con las clases de permiso de tres bits. Se trata de una comparación aritmética, no de evidencia sobre qué notación prefirió la gente históricamente. La calculadora no acepta entradas hexadecimales y sus salidas están diseñadas en torno a dígitos octales, posiciones simbólicas y controles booleanos con nombre.
Por ejemplo, los permisos ordinarios ocupan nueve bits, visibles naturalmente como tres grupos octales. Agrupar los mismos bits en fragmentos de cuatro bits dividiría una clase rwx entre límites de dígitos. Esto hace que el hexadecimal sea menos transparente para este propósito de visualización, pero de esa sola observación no se desprende ninguna afirmación sobre adopción, estándares o historial de línea de comandos.
La comparación hexadecimal es aritmética, no evidencia de adopción histórica
Las constantes con nombre de otros lenguajes o interfaces del sistema están fuera de esta implementación de JavaScript. El repositorio utiliza sus propias propiedades descriptivas, como propietarioRead, groupWrite, otherExecute, setuid, setgid y sticky. Esos nombres hacen que la aritmética de bits interna sea legible sin afirmar una equivalencia con un encabezado externo o API en particular.
Manténgase dentro de lo que la herramienta puede verificar: el valor numérico de un modo proporcionado, sus clases booleanas, representación simbólica, explicación y texto de comando generado. La página del navegador no inspecciona la plataforma de destino ni compila constantes nativas. Cualquiera que traduzca el resultado a otra interfaz de programación debe consultar la documentación autorizada de esa interfaz por separado.
Las constantes C con nombre están fuera de esta implementación de JavaScript
Octal se adapta a esta calculadora porque cada clase de permiso es una cantidad de tres bits y cada dígito de base ocho lleva exactamente tres bits. La correspondencia es visible, reversible y fácil de probar. Los bits especiales utilizan un cuarto dígito con el mismo patrón 4, 2 y 1, mientras que los simbólicos s, S, t y T conservan los detalles de su posición de ejecución.
Utilice la notación como ayuda de repaso en lugar de un encantamiento. Divida el valor en propietario, grupo, otro y cualquier prefijo especial; verificar las letras y casillas; luego decida la idoneidad a partir de la propiedad real y la evidencia de carga de trabajo. La aritmética explica la agrupación completamente sin afirmaciones sin fundamento sobre el historial del hardware, los estándares o la política universal.