Herramientas de desarrollo · Calculadora Chmod
El cuarto dígito de chmod: cómo funcionan setuid, setgid y el bit adhesivo
· Cómo funciona
chmod unix flujo de trabajo del desarrollador
Modos como 4755 y 2775 llevan un dígito inicial que cambia quién ejecuta un programa o quién posee los archivos nuevos. Esta publicación explica los tres bits especiales y cómo aparecen en ls -l.
La s en drwxrwsr-x: un directorio de proyecto compartido se comporta de manera diferente y la salida ls tiene una letra que no está en la hoja de referencia básica
El s en rwxrwsr-x registra dos hechos en una posición: setgid está habilitado y la ejecución en grupo también está habilitada. La implementación almacena setgid como octal 2000 y luego sustituye s por el carácter de ejecución de grupo. Con un marcador de tipo de directorio seleccionado, el modo 2775 aparece como drwxrwsr-x mientras que el resumen de cuatro dígitos conserva el dígito inicial del bit especial.
Ese resultado es una conversión, no una observación del sistema de archivos. El selector de destino cambia la forma en que la página explica los bits, pero nunca abre un directorio ni examina la propiedad. Para un directorio, la explicación implementada dice que los archivos recién creados heredan el grupo del directorio. Si un sistema de almacenamiento en particular aplica ese comportamiento u otra política afecta el acceso, se requiere evidencia más allá de esta calculadora.
El cuarto dígito y sus letras: 4, 2 y 1 como prefijo en el modo familiar, mostrado como s y t en la posición de ejecución, en mayúsculas cuando el bit de ejecución debajo está desactivado
El dígito octal inicial combina tres máscaras independientes: setuid es 4000, setgid es 2000 y sticky es 1000. Sus letras ocupan posiciones de ejecución existentes en lugar de agregar caracteres a la pantalla de nueve posiciones. Setuid usa la posición del propietario, setgid la posición del grupo y fija la otra posición. La matriz expone los tres por separado de la lectura, escritura y ejecución ordinarias.
El caso revela el bit de ejecución subyacente. El modo 4755 representa rwsr-xr-x porque la ejecución del propietario acompaña a setuid; 4644 representa rwSr--r-- porque no es así. El analizador lee ambos formularios en los bits especiales y de ejecución correspondientes. La misma regla inferior versus superior produce s o S para setgid yt o T para sticky, preservando todas las combinaciones durante los viajes de ida y vuelta.
setuid en ejecutables: cómo se ejecuta /usr/bin/passwd con los privilegios del propietario del archivo y por qué Linux ignora setuid en scripts interpretados
Para un archivo normal, la explicación del setuid implementado depende de la ejecución del propietario. Cuando ambos bits están presentes, la página dice que ejecutar el archivo utiliza la identidad del propietario del archivo en lugar de la de la persona que llama. Cuando setuid está presente sin que el propietario lo ejecute, la pantalla usa S mayúscula y explica que no hay nada que ejecutar. Este es el alcance corregido y respaldado por las fuentes de la sección.
La calculadora no identifica un ejecutable en particular, no inicia uno ni inspecciona cómo una plataforma trata los scripts. Su evidencia es el modo suministrado y la elección del objetivo. El modo 4755 se puede descomponer en setuid más rwxr-xr-x, y la vista previa de la asignación agrega u+s después de las cláusulas ordinarias. Eso verifica únicamente la representación y la explicación; La idoneidad del programa y su ejecución real siguen siendo cuestiones externas.
representación setuid y explicación para archivos normales
Setgid en un directorio se representa independientemente de los permisos de grupo ordinarios. El modo 2775 combina la máscara 2000 con el propietario y el grupo 7 y otros 5. La pantalla rwxrwsr-x mantiene la lectura, escritura y ejecución del grupo mientras reemplaza la x visible con s. La explicación del directorio asocia el bit especial con la herencia del grupo del directorio para los archivos recién creados.
Al eliminar la ejecución del grupo mientras se conserva setgid, se cambia la letra de posición del grupo a S mayúscula. Esa advertencia visible se desprende directamente del renderizador, independientemente de la redacción de destino. La página puede comparar esos valores completados y mostrar qué casilla de verificación cambió, pero no puede inspeccionar un directorio compartido, su grupo actual o las identidades que crean entradas. El acuerdo entre las opiniones es evidencia aritmética, no aprobación operativa.
El bit fijo en los directorios: eliminación restringida en /tmp y por qué 1777 no es lo mismo que 777
Sticky ocupa la posición de otra ejecución y contribuye con el 1000 octal. Para el modo de directorio 1777, todos los permisos ordinarios permanecen habilitados y el carácter simbólico final se convierte en t. La explicación del directorio implementada agrega una restricción de eliminación y cambio de nombre, mientras que la explicación 777 advierte sobre un directorio grabable sin adhesivo. Por lo tanto, el convertidor hace visible la diferencia de un bit sin cambiar los triples rwx subyacentes.
Si hay pegajoso sin otra ejecución, el carácter final es T mayúscula. El analizador y el renderizador preservan esa distinción en ambas direcciones. La página no inspecciona un directorio compartido real, propietarios de entradas ni intentos de eliminación. Su conclusión confiable es más limitada: el número entero proporcionado contiene adhesivo, su compañero de ejecución es visible mediante mayúsculas y minúsculas y se selecciona texto explicativo orientado al directorio.
Ejemplo resuelto: crear 2775 para un directorio compartido: derivar los dígitos y el chmod simbólico equivalente g+s,a+rwx,o-w
Construya 2775 como cuatro componentes visibles: dígito especial 2 para setgid, dígito del propietario 7 para rwx, dígito de grupo 7 para rwx y otro dígito 5 para r-x. Al ingresar el valor completo se produce rwxrwsr-x. La matriz selecciona setgid por separado, mientras que el resumen nombra el propietario, el grupo y otros permisos junto con ese bit especial.
La lista de asignaciones generada es u=rwx,g=rwx,o=rx,g+s. Esto difiere de la visualización de nueve caracteres pero representa el mismo valor de doce bits. Al elegir el directorio, se cambia la explicación a la redacción implementada de herencia de grupo; elegir el archivo cambia la redacción sin cambiar 2775. La calculadora nunca verifica el grupo de destino ni crea un archivo, por lo que el ejemplo sigue siendo un modelo en lugar de una prescripción de implementación.
Ejemplo resuelto: crear y leer 2775 para un modelo de directorio compartido
El comportamiento de montaje, las capacidades y la semántica de plataforma adicional no se modelan. La página no tiene entrada de montaje, conjunto de capacidades, consulta del kernel ni sonda del sistema de archivos. Puede representar setuid, setgid y sticky y puede variar su explicación entre archivos y directorios normales. No puede establecer si una regla externa neutraliza, extiende o interpreta esos bits de manera diferente en un objetivo real.
Incluso la redacción de la fuente no debe generalizarse más allá de la interfaz. Un modo de bits especiales válido demuestra que el analizador, el renderizador, la matriz, el resumen y las asignaciones generadas coinciden. No prueba que se haya producido un comportamiento de ejecución, herencia o eliminación. Mantenga las reclamaciones de políticas no compatibles fuera del diagnóstico y trate el comando copiado como texto inerte hasta que un entorno inspeccionado por separado proporcione el contexto faltante.
La política de montaje, las capacidades y la semántica de esquina no implementada permanecen externas
La conclusión implementada es un viaje de ida y vuelta con significado posicional. Setuid se asigna a la posición de ejecución del propietario, setgid a la ejecución del grupo y se mantiene fijo a otra ejecución. Minúscula significa que el bit de ejecución asociado está activado; mayúscula significa que está apagado. El dígito octal inicial y las casillas de verificación dedicadas conservan la misma información, por lo que no es necesario inferir ningún bit especial solo de la prosa.
Pruebe un modo especial comparando todas las representaciones. Para 2775, espere el 2 inicial, posiciones de grupo s, una casilla setgid marcada y una suma g+s generada. Una discrepancia expondría un problema de conversión. El acuerdo establece sólo un modo consistente. La propiedad, la política de montaje, las capacidades, las reglas de la aplicación y las consecuencias de ejecutar chmod quedan más allá de la evidencia de la calculadora del navegador.