Español

Herramientas de desarrollo · Calculadora Chmod

Búsqueda de archivos grabables en todo el mundo y binarios setuid con find -perm

· Por qué es importante

chmod unix control de acceso

auditorías de permisos mostradas como un diagrama de bits de permisos de Unix distinto
Ilustración de vector original de ToolAcre

Dos patrones de permisos explican muchos incidentes reales: archivos que cualquiera puede cambiar y programas que se ejecutan como root. Esta publicación muestra cómo encontrar ambos con find -perm y qué hacer al respecto.

El revisor solicita una lista que usted no tiene: qué archivos puede modificar cualquier usuario y qué programas elevan los privilegios cuando se ejecutan.

Una revisión de permisos a menudo comienza con modos ya recopilados en otro lugar: tal vez 0002, 4000, 2000 o un valor completo como 4755. La calculadora puede decodificar esos números en permisos de propietario, grupo y otros, incluidos los tres bits especiales. No busca directorios, no inspecciona archivos binarios ni produce un inventario de rutas.

Trate cada modo proporcionado como una descripción de bits, no como un veredicto sobre un archivo. Ingréselo, compare el campo octal con la visualización simbólica y la matriz de casillas de verificación, luego registre lo que cambió. La propiedad, las entradas de ACL, las capacidades y la identidad de cualquier proceso que utilice la ruta siguen siendo datos que se deben recopilar del entorno real.

Escribible mundialmente significa que la clase de los demás tiene w: el patrón octal 0002 y por qué -perm -0002 lo encuentra independientemente de otros bits

El valor 0002 aísla el otro bit de escritura. En el diseño ordinario de tres clases, el dígito final pertenece a todos los que están fuera de las clases de propietario y grupo, y su componente de escritura tiene un peso 2. Por lo tanto, un modo completo que contenga ese bit mostrará w en la otra clase, aunque la calculadora no localiza dichos modos por sí misma.

Si una expresión de búsqueda particular significa coincidencia exacta, de todos los bits o de cualquier bit pertenece a la documentación de búsqueda, no a este convertidor. En su lugar, proporcione un modo resultante. Por ejemplo, 0666 se convierte en rw-rw-rw-, mientras que 0644 se convierte en rw-r--r--; la diferencia es visible en el grupo y otras posiciones de escritura sin implicar que cualquiera de los modos se adapte a una ruta específica.

0002 expone el otro bit de escritura; encontrar semántica coincidente es externa

El dígito inicial de bit especial usa 4 para setuid y 2 para setgid. Por lo tanto, 4755 combina setuid con permisos 755 ordinarios, mientras que 2755 combina setgid con los mismos bits finales. La calculadora expone esas máscaras por separado y coloca sus letras simbólicas en la posición de ejecución del propietario o grupo al renderizar el modo completo.

El caso contiene pruebas útiles. Si setuid acompaña a la ejecución del propietario, la posición de ejecución del propietario muestra s; sin ejecutar muestra S. Setgid sigue la misma regla en la posición del grupo. Estas salidas decodifican un número entero proporcionado, pero no inspeccionan un programa, no determinan su propietario, no lo ejecutan ni deciden si un bit especial está justificado.

4000 y 2000 decodifican como setuid y setgid sin auditar los binarios

La sintaxis de búsqueda de permisos debe mantenerse separada de la aritmética de permisos. La calculadora acepta un modo simbólico octal o de nueve caracteres y devuelve un valor de doce bits. No tiene representación para un operador de búsqueda, predicado de ruta o regla de coincidencia, por lo que una consulta en modo exacto y una consulta con todos los bits necesarios no se pueden distinguir dentro de esta interfaz.

Decodifica el modo de cada resultado de búsqueda externo en lugar de pegar la expresión de búsqueda. Los tres dígitos ordinarios se asignan a propietario, grupo y otros, mientras que un dígito inicial opcional se asigna a setuid, setgid y sticky. Este flujo de trabajo verifica los bits informados, pero deja la cobertura de búsqueda y la semántica coincidente a la herramienta que produjo la lista.

Los modos de búsqueda exactos, de todos los bits y de cualquier bit necesitan documentación de búsqueda

Supongamos que una auditoría realizada en otro lugar informa 0666 y 4755. Al ingresar 0666 se obtiene rw-rw-rw-, lo que hace visible otra escritura en el último triplete. Al ingresar 4755 se obtiene rwsr-xr-x: el propietario ha leído, escrito y ejecutado, y setuid reemplaza el carácter de ejecución del propietario con s minúscula porque ese bit de ejecución está presente.

Un segundo resultado como 4644 demuestra por qué la forma simbólica es importante. Representa rwSr--r--, con S mayúscula que muestra setuid mientras la ejecución del propietario está ausente. La calculadora puede hacer que esa inconsistencia sea notoria. Todavía no puede identificar la ruta, establecer quién es el propietario, inspeccionar su contenido o recomendar la eliminación del bit.

Ejemplo resuelto: decodificar visitas de auditoría proporcionadas sin escanear rutas

No repare todos los modos inusuales automáticamente. Un modo es sólo una entrada para una decisión que también depende del objetivo, propietario, grupo y operación requerida. La página no recibe deliberadamente nada de ese contexto. La vista previa de su comando es texto inerte, e incluso el navegador no abre ni verifica una ruta entre comillas correctamente.

Antes de cambiar un modo informado, compare los valores actuales y propuestos un bit a la vez. Eliminar otra escritura de 0666 produce 0664; eliminar setuid de 4755 produce 0755. Esos hechos aritméticos son reproducibles, pero si alguno de los cambios preserva la carga de trabajo requiere evidencia local más allá de la calculadora y más allá del recorrido de bits ordinarios del artículo 501.

Las excepciones y la remediación requieren propiedad local y evidencia de carga de trabajo

Faltan varias dimensiones de auditoría relevantes. La ruta no consulta entradas de ACL, capacidades de archivos, propiedad, componentes de ruta de escritura, comportamiento de montaje ni política obligatoria. Tampoco ejecuta buscar, inspeccionar una RUTA ni recorrer el almacenamiento. Por lo tanto, una conversión limpia sólo dice que el número proporcionado y las letras mostradas coinciden.

Mantenga esos límites visibles en cualquier informe. Registre la ruta y el método de recopilación junto al modo decodificado, luego investigue identidades y mecanismos de acceso adicionales con herramientas externas adecuadas. La calculadora es valiosa como verificación de notación porque rechaza dígitos octales no válidos y expone bits especiales; no es un escáner de sistema de archivos ni un motor de reparación.

Conclusión: conozca sus archivos privilegiados y de escritura, y use la calculadora Chmod para traducir cada modo sospechoso antes de cambiarlo

Una auditoría de permisos útil separa el descubrimiento de la interpretación. Deje que un proceso externo y documentado recopile rutas candidatas y luego use la calculadora para traducir cada modo devuelto en permisos de clase explícitos. Verifique el dígito de bit especial opcional con tanto cuidado como los tres finales, ya que 0755, 2755 y 4755 comparten permisos ordinarios pero describen diferentes valores de doce bits.

Termine con una conclusión concreta: qué propietario, grupo, otros bits especiales contiene el modo suministrado. No convierta esa aritmética en una afirmación sin fundamento sobre la exposición o la política requerida. La calculadora ayuda a los revisores a leer con precisión los modos sospechosos; el sistema en vivo debe proporcionar evidencia de propiedad, carga de trabajo y cumplimiento antes de que alguien los cambie.