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 6000
es u+s,g+s
, no sólo u+s
(eso sería 4000
).
find / -perm /u+s
o find / -perm /4000
solo encuentra archivos que tienen el bit setuid configurado. find / -perm /u+s
o find / -perm /6000
busca archivos que tienen el bit setuid configurado o el bit setgid configurado.