Seamos realistas:el sistema de archivos de Linux puede ser complejo. Agregue sistemas de archivos remotos montados, medios extraíbles y cualquier directorio específico del servidor que haya creado, y usted o sus usuarios pueden tener dificultades para recordar exactamente dónde se almacena un archivo determinado. Ahí es donde find
entra el comando. Le permite buscar archivos o directorios según varios criterios. Haré una revisión básica de find
a continuación, pero el enfoque de este artículo es un poco diferente:Buscar recursos por permisos.
¿Por qué necesito buscar por permisos?
- Auditoría de seguridad
- Solucionar problemas de acceso de usuarios
- Solucionar problemas de acceso a aplicaciones
Ejemplo rápido de búsqueda por nombre
Hay otros artículos sobre Habilitar Sysadmin que cubren el find
comandar con eficacia. Sin embargo, resumiré rápidamente el comando aquí.
Sintaxis:
find (where to search) (what to search for)
Ejemplo:
# find /etc -name rsyslog
# find /home/user01 -type d
Sin embargo, este artículo se centra en el uso de -perm
opción, que busca según la configuración de permisos.
Modo absoluto versus modo simbólico
Recuerde que los permisos se establecen mediante el chmod
dominio. El chmod
El comando reconoce tanto el modo absoluto como el modo simbólico. Consulte mi artículo reciente Cómo administrar los permisos de Linux para usuarios, grupos y otros para obtener una revisión de la administración del acceso a los recursos, incluidos los dos modos. El find
El comando también reconoce cualquiera de los modos, por lo que puede usar el que le resulte más natural. Para mí, ese es el modo absoluto. Debe recordar algunas cosas sobre el modo absoluto y el modo simbólico para usar de manera efectiva find -perms
comando.
Modo absoluto
El modo absoluto usa valores octales para representar permisos. Los valores se enumeran en orden según el permiso que se asignará al usuario, grupo y todos los demás.
Por ejemplo:
# chmod 764 file1
Establece el usuario con 7 (rwx), grupo con 6 (rw) y otros con 4 (r) para file1
.
Modo simbólico
El modo simbólico utiliza símbolos para representar los niveles de acceso y utiliza operadores matemáticos para dar (+ ) o eliminar (- ) permisos.
Por ejemplo:
# chmod o+rw file1
Da los otros identidad leer y escribir a file1
.
Encuentre permisos de recursos usando el modo absoluto
La búsqueda de permisos más fundamental no utiliza parámetros adicionales. La declaración dice "buscar un recurso con estos permisos".
Por ejemplo:
# find /etc -perm 777
El comando es:Buscar en /etc
directorio de recursos con el 777 nivel de acceso (rwx para todas las identidades).
El ejemplo anterior solo encuentra recursos con exactamente el permiso especificado, ni más ni menos. ¿Qué pasa si necesitas un poco más de flexibilidad? Hay dos parámetros adicionales que pueden ser muy útiles. El primero es el -
carácter (guión), y el segundo es el /
carácter (barra oblicua). Veamos ambos.
Buscar por -
El uso del -
opción significa "al menos este nivel de permiso está configurado y cualquier permiso superior".
Ejemplo:
# find . -perm -644
Este ejemplo muestra todos los recursos en el directorio actual con al menos 644 permisos.
Buscar por /
El uso del /
opción significa "cualquiera de los permisos enumerados está establecido".
Ejemplo:
# find . -perm /644
Este ejemplo muestra recursos con 644 o mayores permisos.
Encuentre permisos de recursos usando el modo simbólico
El modo simbólico usa el ugo símbolos (usuario, grupo, otros), rwx símbolos (leer, escribir, ejecutar) y operadores matemáticos (como + o - ) para definir permisos.
Buscar por -
El -
La opción funciona igual en modo simbólico que antes en modo absoluto. Muestra recursos con "al menos este nivel de acceso".
Ejemplo:
# find -perm -u+w,g+w
Buscar por /
El /
también funciona igual en modo simbólico. Muestra los recursos con "cualquier permiso enumerado".
Ejemplo:
# find -perm /u+w,g+w
Los permisos estándar de Linux son muy comunes y ahora sabe cómo buscar recursos con un nivel de acceso determinado configurado. Sin embargo, Linux también aprovecha los permisos especiales . El find
El comando también puede mostrar estos permisos.
Encuentre recursos con permisos especiales configurados
Los permisos especiales de Linux establecen controles de acceso adicionales a los recursos. Hay tres permisos especiales:Establecer ID de usuario (SUID), Establecer ID de grupo (SGID) y Sticky Bit. Los detalles de cada uno están fuera del alcance de este artículo, pero permítanme resumir rápidamente:
Permiso especial | Descripción |
SUID | Un archivo es ejecutado por un usuario con la identidad del propietario, incluso si ese usuario no es el propietario |
SGID | El contenido de un directorio hereda automáticamente la asociación de grupo de la carpeta principal (ideal para directorios compartidos por equipos de proyecto) |
Broca adhesiva | El archivo se carga en la memoria automáticamente y nadie más que el propietario no puede eliminarlo ni modificarlo |