Encuentra y diferencias entre -perm /6000 y -perm /u+s

Encuentra y diferencias entre -perm /6000 y -perm /u+s

He estado intentando encontrar ejecutables de setuid usando una sola línea.

La línea que probé por primera vez fue:

find / -perm /u+s -type f

Luego encontré una línea que es similar pero da resultados diferentes:

find / -perm /6000 -type f

Por lo que puedo ver, estos parecen idénticos, pero el primero no muestra tantos resultados como el segundo (faltan en su mayoría los que tienen grupos extraños). ¿Por qué, qué es diferente?

Respuesta1

La mayoría de la gente no lo sabe, pero los permisos de Unix en realidad no son solo Usuario, Grupo y Otros (rwx). Estas 3 tríadas son los permisos típicos que permiten a los usuarios, grupos y otros usuarios acceder a archivos y directorios. Sin embargo, también hay un grupo de bits que preceden a los bits de Usuario. Estos bits se denominan "modos especiales".

Es más bien una notación abreviada en la que no es necesario configurarlos explícitamente cuando se trabaja con una herramienta como chmod.

$ chmod 644

En realidad es equivalente a:

$ chmod 0644

Aquí está la lista de bits:

extracto de un artículo de Wikipedia titulado:chmod

Flag                Octal value     Purpose
----                -----------     -------
S_ISUID             04000           Set user ID on execution
S_ISGID             02000           Set group ID on execution
S_ISVTX             01000           Sticky bit
S_IRUSR, S_IREAD    00400           Read by owner
S_IWUSR, S_IWRITE   00200           Write by owner
S_IXUSR, S_IEXEC    00100           Execute/search by owner
S_IRGRP             00040           Read by group
S_IWGRP             00020           Write by group
S_IXGRP             00010           Execute/search by group
S_IROTH             00004           Read by others
S_IWOTH             00002           Write by others
S_IXOTH             00001           Execute/search by others

Tu pregunta

Entonces, en tu primer comando estás buscando u+s, lo que resultaría ser un bit 04000. Cuando usas la notación numérica estás pidiendo bits.04000 Y 02000. Esto le daría archivos con bits setuid de usuario o grupo configurados.

Otras lecturas

Recomiendo encarecidamente a cualquiera que quiera comprender mejor los permisos en Unix que lea elpágina de Wikipedia sobrechmod. Lo desglosa de forma muy sencilla y es una excelente referencia cuando lo olvidas.

Referencias

Respuesta2

El modo 6000es u+s,g+s, no sólo u+s(eso sería 4000).

find / -perm /u+so find / -perm /4000solo encuentra archivos que tienen el bit setuid configurado. find / -perm /u+so find / -perm /6000busca archivos que tienen el bit setuid configurado o el bit setgid configurado.

información relacionada