BEZEICHNUNG¶
setfsgid - Gruppenidentität für Dateisystemprüfungen setzen
ÜBERSICHT¶
#include <sys/fsuid.h>
int setfsgid(uid_t fsgid);
BESCHREIBUNG¶
Der Systemaufruf
setfsgid() ändert den Wert der
Dateisystemgruppen-ID des Aufrufenden – der Gruppen-ID, die der
Linux-Kernel zum Prüfen aller Zugriffe auf das Dateisystem benutzt.
Normalerweise wird der Wert der Gruppen-ID des Dateisystems mit der effektiven
Gruppen-ID übereinstimmen. Jedenfalls wird immer, wenn die effektive
Gruppen-ID geändert wird, auch die Gruppen-ID des Dateisystems auf den
neuen Wert der effektiven Gruppen-ID geändert.
Explizite Aufrufe von
setfsgid(2) und
setfsgid() werden
gewöhnlich nur von Programmen wie dem Linux-NFS-Server benutzt, die die
für Dateizugriffe benutzten Benutzer- und Gruppen-IDs ändern
müssen, die für Dateizugriffe benutzt werden ohne die reale oder
effektive Gruppen-ID zu ändern. Eine Änderung der normalen
Benutzer-ID bei Programmen wie dem NFS-Server ist eine
Sicherheitslücke, die es unerwünschten Signalen von anderen
Gruppen-IDs aussetzen kann. (Aber lesen Sie Nachstehendes.)
setfsgid() wird nur erfolgreich sein, falls der Aufrufende der Superuser
ist oder wenn
fsgid entweder der Gruppen-ID des Aufrufenden, der
effektiven Gruppen-ID, der gesicherten SGID oder der aktuellen
Dateisystembenutzer-ID entspricht.
RÜCKGABEWERT¶
Sowohl im Erfolgs- wie auch im Fehlerfall liefert dieser Aufruf die
vorhergehende Dateisystem-Gruppen-ID des Aufrufenden zurück.
VERSIONEN¶
Dieser Systemaufruf ist in Linux seit Version 1.2 vorhanden.
setfsgid ist Linux-spezifisch und sollte nicht in portierbaren Programmen
benutzt werden.
ANMERKUNGEN¶
Wenn Glibc feststellt, dass das Argument keine gültige Gruppen-ID ist,
wird -1 zurückgegeben und
errno auf
EINVAL gesetzt ohne
den Systemaufruf zu versuchen.
Beachten Sie, dass ein Prozess zu der Zeit, als dieser Systemaufruf
eingeführt wurde, ein Signal zu einem Prozess mit der gleichen
effektiven Benutzer-ID senden konnte. Heute ist die Rechtebehandlung von
Signalen etwas anders. Lesen Sie
setfsuid(2) für eine
Abhandlung, warum die Verwendung von sowohl
setfsuid(2) als auch
setfsgid() heutzutage nicht benötigt wird.
Der Original-Linux-Systemaufruf
setfsgid() unterstützte nur
16-Bit-Gruppen-IDs. Nachfolgend fügte Linux 2.4
setfsgid32()
hinzu, das 32-Bit-IDs unterstützte. Die Glibc-Wrapper-Funktion
setfsgid() stellt die Änderungen transparent über
Kernel-Versionen hinweg bereit.
FEHLER¶
Es werden keine Anhaltspunkte für Fehler an den Aufrufenden
zurückgegeben und die Tatsache, dass sowohl erfolgreiche als auch nicht
erfolgreiche Aufrufe den selben Wert zurückgeben, macht es
unmöglich, direkt zu bestimmen, ob der Aufruf erfolgreich war oder
fehlschlug. Stattdessen musste der Aufrufende auf die Betrachtung des
Rückgabewerts eines weiteren Prozesses wie
setfsgid(-1)
zurückgreifen (der immer fehlschlägt), um zu bestimmen, ob ein
vorheriger Aufruf von
setfsgid() die Dateisystemgruppen-ID
geändert hat. Zumindest sollte
EPERM zurückgegeben
werden, wenn der Aufruf fehlschlägt (da dem Aufrufenden die
CAP_SETGID-Fähigkeit fehlt).
SIEHE AUCH¶
kill(2),
setfsuid(2),
capabilities(7),
credentials(7)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.74 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler
gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<krd@gulu.net> und Chris Leick <c.leick@vollbio.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.