Ich habe versucht, Setuid-ausführbare Dateien mit einem „Einzeiler“ zu finden.
Die Zeile, die ich zuerst ausprobiert habe, war:
find / -perm /u+s -type f
Dann habe ich eine Zeile gefunden, die ähnlich ist, aber andere Ergebnisse liefert:
find / -perm /6000 -type f
Diese sehen, soweit ich das beurteilen kann, identisch aus, aber das erste zeigt nicht so viele Ergebnisse wie das zweite (meistens fehlen solche mit seltsamen Gruppen). Warum, was ist anders?
Antwort1
Die meisten Leute wissen es nicht, aber die Unix-Berechtigungen bestehen eigentlich nicht nur aus Benutzer-, Gruppen- und anderen Berechtigungen (rwx). Diese 3 Triaden sind die typischen Berechtigungen, die Benutzern, Gruppen und anderen Benutzern Zugriff auf Dateien und Verzeichnisse gewähren. Es gibt jedoch auch eine Gruppe von Bits, die den Benutzerbits vorangehen. Diese Bits werden als „Spezialmodi“ bezeichnet.
Es handelt sich eher um eine Kurznotation, die Sie beim Arbeiten mit einem Tool wie nicht explizit festlegen müssen chmod
.
$ chmod 644
Ist eigentlich gleichbedeutend mit:
$ chmod 0644
Hier ist die Liste der Bits:
Auszug aus einem Wikipedia-Artikel mit dem Titel: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
Ihre Frage
In Ihrem ersten Befehl suchen Sie also nach u+s
, was sich als bit herausstellen würde 04000
. Wenn Sie die numerische Notation verwenden, fragen Sie nach Bits04000
UND 02000
. Dadurch erhalten Sie Dateien mit gesetzten Benutzer- oder Gruppen-Setuid-Bits.
Weitere Informationen
Ich empfehle jedem, der die Berechtigungen in Unix besser verstehen möchte, dieWikipedia-Seite überchmod
. Es erklärt alles ganz einfach und ist ein hervorragendes Nachschlagewerk, falls Sie es vergessen.
Verweise
Antwort2
Modus 6000
ist u+s,g+s
, nicht nur u+s
(das wäre 4000
).
find / -perm /u+s
oder find / -perm /4000
findet nur Dateien, bei denen das Setuid-Bit gesetzt ist. find / -perm /u+s
oder find / -perm /6000
findet Dateien, bei denen das Setuid-Bit oder das Setgid-Bit gesetzt ist.