Todos los howtos que encuentro en la web dicen:
Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print
Pero eso no es verdad. Ver:
$ ls -lah test
-r-sr-xr-x 1 user user 0B Jan 24 22:47 test
$
$
$ stat -x test | grep Mode
Mode: (4555/-r-sr-xr-x) Uid: ( 1000/ user) Gid: ( 1000/ user)
$
$
$ find test -perm 4000
$ find test -perm 2000
$
Pregunta: Entonces, ¿cuál es la verdad? ¿Cómo puedo realmente enumerar todos los archivos SUID / SGID?
Uhm, entonces, ¿por qué exactamente esto "no es cierto"? Hiciste R ea T que F riendly M anual, ¿verdad? Los bits de permiso de archivo son exactamente modo (octal o simbólico).
—
0xC0000022L
** prueba ** es un archivo. Encuentra búsquedas en directorios. Por lo tanto, debe usar find en el directorio donde reside la prueba.
—
Nils
@Nils: falso.
—
0xC0000022L
find(GNU encuentra que es exacto) tomará directorios y archivos por igual. Él / ella simplemente pierde el punto del -permcambio. Leer el manual ayudaría.
@ 0xC0000022L Interesante. Mi página de manual de Linux en CentOS 5 me dice que solo tomará directorios. ¿Tiene mucho sentido ejecutarlo en un archivo?
—
Nils
@Nils: no, no tiene sentido hacerlo. Pero no evitarás esa locura. De todos modos, a primera vista también pensé que este era el problema. Por desgracia, no es por esta pregunta. Puede intentarlo buscando algunos bits en un archivo como este
—
0xC0000022L
find $FILE -perm /7777para ver si lo findhace o lo impide.