Todos os howtos que encontro na web declaram:
Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print
Mas isso não é verdade. Vejo:
$ 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
$
Pergunta: Então, qual é a verdade? Como posso realmente listar todos os arquivos SUID / SGID?
Uhm, então por que exatamente isso "não é verdade"? Você fez R ead T ele F riendly M anual, certo? Os bits de permissão do arquivo são exatamente o modo (octal ou simbólico).
—
0xC0000022L
** teste ** é um arquivo. Encontre pesquisas nos diretórios. Portanto, você deve usar o find no diretório em que o teste reside.
—
Nils
@ Nils: falso.
—
0xC0000022L
find
(O GNU acha que é exato) terá diretórios e arquivos. Ele / ela simplesmente perde o objetivo do -perm
interruptor. Ler o manual ajudaria.
@ 0xC0000022L Interessante. Minha página de manual do Linux no CentOS 5 diz que apenas serão necessários diretórios. Existe muito sentido em executá-lo em um arquivo?
—
Nils
@ Nils: não, não há um sentido particular em fazê-lo. Mas você não vai impedir essa loucura. Independentemente disso, à primeira vista, também pensei que esse fosse o problema. Infelizmente, não é para esta pergunta. Você pode tentar verificar alguns bits em um arquivo como este
—
0xC0000022L
find $FILE -perm /7777
para ver se o find
faz ou o impede.