2009-03-09 11 views
3

Wie der Titel sagt, schreibt irgendein Unix-ähnliches System dem SUID-Bit auf einem Verzeichnis eine Bedeutung zu, und wenn ja, was bedeutet das?Beschreibt irgendein Unix-ähnliches System das SUID-Bit in einem Verzeichnis?

Das SVTX-Bit (gespeichertes oder klebriges Bit) hat eine Bedeutung - Sie dürfen keine Datei aus diesem Verzeichnis löschen, es sei denn, Sie können in die Datei schreiben. Es wird zum Beispiel auf/tmp verwendet.

Das Bit SGID (Set GID) hat eine Bedeutung - Dateien, die in diesem Verzeichnis erstellt werden, müssen zu der Gruppe gehören, der das Verzeichnis gehört (obwohl diese Zuweisung später durch einen expliziten Aufruf von chown (2) geändert werden kann).

Was ist mit dem SUID-Bit?

Antwort

6

Als Followup auf Knoten Antwort, werde ich die folgenden von der FreeBSD Manpage mount (8) schreiben:

   suiddir 
       A directory on the mounted file system will respond to 
       the SUID bit being set, by setting the owner of any new 
       files to be the same as the owner of the directory. New 
       directories will inherit the bit from their parents. 
       Execute bits are removed from the file, and it will not 
       be given to root. 

       This feature is designed for use on fileservers serving 
       PC users via ftp, SAMBA, or netatalk. It provides secu- 
       rity holes for shell users and as such should not be used 
       on shell machines, especially on home directories. This 
       option requires the SUIDDIR option in the kernel to work. 
       Only UFS file systems support this option. See chmod(2) 
       for more information. 

Und die chmod (2) man-Seite Abschnitt, der auf die suid verweist Bit:

  4000 (the setuid bit). Executable files with this bit set will 
       run with effective uid set to the uid of the file owner. 
       Directories with this bit set will force all files and sub- 
       directories created in them to be owned by the directory 
       owner and not by the uid of the creating process, if the 
       underlying file system supports this feature: see chmod(2) 
       and the suiddir option to mount(8). 

Bitte beachten Sie, dass dies ein Sicherheitsrisiko ist und wissen, was Sie tun, wenn Sie es ermöglichen, in FreeBSD aber ich glaube, Linux und erfordert es spezielle Flag montieren aktiviert werden und wird die Art und Weise ändern Dateien in diesem Verzeichnis verhalten sich.

+0

Danke - das ist hilfreich, weil es spezifische Plattforminformationen enthält. Andere Nachrichten, die ich gesehen habe, enthalten nur die allgemeine Behauptung, dass solche Systeme existieren. –

+0

Hm, könnten Sie ein Szenario beschreiben, in dem es ein Sicherheitsrisiko wäre, es zu benutzen? Vielleicht wenn _secret_ Dateien von einem Benutzer als _nobody_ erstellt werden. Aber schön zu wissen. :) * upvote * – Node

+0

@Node: Nicht sicher, wie es als Sicherheitslücke verwendet werden könnte, abgesehen davon, dass es allgemein als schlechte Praxis angesehen wird, und daher wurde es standardmäßig in FreeBSD/Linux deaktiviert. –

0

Das SUID-Bit gibt an, dass der Prozess bei der Ausführung einer Datei (wenn ausführbar) unter der Identität des Eigentümers der Datei und nicht des Benutzers ausgeführt wird, der sie ausgeführt hat.

Es gibt ein paar Fälle, in denen ein Hilfsprogramm "suid root" ist, um eine Privilegien-Eskalation zuzulassen.

EDIT: misread ursprüngliche Frage (die eher als Dateien auf Verzeichnisse bezieht) - Verlassen Antwort unverändert für pädagogische Zwecke ;-)

+0

Und Sie können Verzeichnisse nicht ausführen - was bedeutet es für Verzeichnisse angewendet? –

+0

D'oh, du hast Recht, ich habe den Verzeichnisteil übersehen. Siehe John Ellinwoods Antwort. –

1

Wenn auf einem Verzeichnis gesetzt, werden alle Dateien und Verzeichnisse in diesem Verzeichnis erstellt wird das gleicher Besitzer wie das SUID-Verzeichnis selbst, egal, wer die Datei erstellt hat. Dies ist eine Funktion, die nicht oft verwendet wird, aber in einigen Fällen nützlich sein kann.()

Update: Ich habe es gerade auf Linux 2.6.25.5-1.1-Standard # 1 SMP x86_64 GNU/Linux openSUSE 11.0 (X86-64) versucht.

mkdir tmp 
chmod 4777 tmp 
su othergroup 
touch testfile 

Es hatte keinen Effekt.

+0

Kennen Sie irgendwelche Systeme, die es tatsächlich unterstützen - die URL sagt, es passiert, aber ich bin nicht klar, auf welchen Plattformen. –

+0

Hat meinen Beitrag bearbeitet. Sieht so aus, als ob es unter OpenSuSE 11.0 funktioniert. –

+0

@John: Sie haben SGID im Verzeichnis, nicht SUID, demonstriert. Solaris und Linux unterstützen SGID in Verzeichnissen ab Werk. –

4

von here Kopierte:

Auf den meisten Systemen, wenn ein Verzeichnis Set-group-ID-Bit gesetzt ist, neu erstellt Subdateien die gleiche Gruppe wie das Verzeichnis erben, und neu erben erstellt Unterverzeichnisse die Set-Gruppe -ID Bit des übergeordneten Verzeichnisses. Auf einigen Systemen wirkt sich das Bit "Set-User-ID" eines Verzeichnisses auf die Eigentümerschaft neuer Unterdateien und die Benutzer-ID-Bits der neuen Unterverzeichnisse aus. Diese Mechanismen ermöglichen es Benutzern, Dateien einfacher zu teilen, indem sie die Verwendung von chmod oder chown zum Freigeben neuer Dateien verringern.

Diese Komfortmechanismen beruhen auf den Set-User-ID- und Set-Group-ID-Bits von Verzeichnissen. Wenn Befehle wie chmod und mkdir routinemäßig diese Bits in Verzeichnissen löschten, wären die Mechanismen weniger praktisch und es wäre schwieriger, Dateien gemeinsam zu nutzen. Daher wirkt sich ein Befehl wie chmod nicht auf die Set-User-ID- oder Set-Group-ID-Bits eines Verzeichnisses aus, es sei denn, der Benutzer erwähnt sie explizit in einem symbolischen Modus oder legt sie in einem numerischen Modus fest.

+0

Danke - das ist ein hilfreicher Zeiger. Haben wir irgendwelche Informationen darüber, welche Systeme die "auf einigen Systemen unterstützen, ein Set-User-ID Bit eines Verzeichnisses hat einen ähnlichen Effekt"? Es scheint eine offensichtliche Erweiterung der Set-Group-ID-Funktion zu sein. Welche Sicherheitskonsequenzen hätte es? –

+0

Hm, gute Frage zu meinem Linux (Coreutils-5.93) zeigt dieses Verhalten nicht. ATM Ich kann keine wirklichen Sicherheitsprobleme sehen, wenn es sich wie beschrieben verhalten würde. – Node