Alle Howtos, die ich im Web finde, besagen:
Find all SUID files:
find / -perm -4000 -print
Find all SGID files:
find / -perm -2000 -print
Das stimmt aber nicht. Sehen:
$ 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
$
Frage: Was ist die Wahrheit? Wie kann ich wirklich alle SUID / SGID-Dateien auflisten?
find
(GNU findet genau) nimmt Verzeichnisse und Dateien gleichermaßen. Er / sie verfehlt einfach den Punkt des-perm
Schalters. Das Lesen des Handbuchs würde helfen.find $FILE -perm /7777
nach Bits suchen , um festzustellen, ob Siefind
dies tun oder verhindern.Antworten:
Wenn Sie testen wollen , jede der Bits verwenden
/
. Dh für Ihren Anwendungsfall:und:
oder kombiniert:
Sie können sowohl Ordner als auch Dateien als Argument für GNU verwenden
find
.Ein anderer, IMO besser lesbarer Ansatz ist die Verwendung der mnemonischen Verknüpfungen. Dh:
Vorbehalt Emptor
Beachten Sie, dass die Varianten von
find
variieren. Sie können sich auch anders verhalten. Lesen Sie immer das freundliche Handbuch (RTFM).quelle
Mit dem folgenden Befehl können Sie alle Binärdateien mit SUID-Berechtigung auflisten. Die
-perm -u=s
Flagge desfind
Werkzeugs macht den Trick:quelle