Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(2)

getgroups(2)

getuid(2)

stat(5)

setuid(2)                                                         setuid(2)

NAME
     setuid, setgid - Benutzer- und Gruppennummer einstellen

SYNTAX
     #include <sys/types.h>
     #include <unistd.h>

     int setuid(uidt uid);

     int setgid(gidt gid);

BESCHREIBUNG
     Der Systemaufruf setuid() setzt die reale Benutzernummer, die effek-
     tive Benutzernummer und die gesicherte Benutzernummer des aufrufenden
     Prozesses. Der Systemaufruf setgid() setzt die reale Gruppennummer,
     die effektive Gruppennummer und die gesicherte Gruppennummer des auf-
     rufenden Prozesses.

     Beim Login werden die reale Benutzernummer, die effektive Benutzernum-
     mer und die gesicherte Benutzernummer des Login-Prozesses auf die
     Login-Nummer des Benutzers gesetzt, der für die Erzeugung des Prozes-
     ses verantwortlich ist. Dasselbe gilt für die reale, effektive und
     gesicherte Gruppennummer; sie werden auf die Gruppennummer des Benut-
     zers gesetzt, der für die Erzeugung des Prozesses verantwortlich ist.

     Wenn ein Prozeß exec(2) aufruft, um eine Datei auszuführen, können
     sich die Benutzer- und/oder Gruppennummern, die mit dem Prozeß verbun-
     den sind, ändern. Wenn die ausgeführte Datei eine "set-user-ID"-Datei
     ist, werden die effektive und gesicherte Benutzernummer des Prozesses
     auf den Benutzer der ausgeführten Datei gesetzt. Wenn die ausgeführte
     Datei eine "set-group-ID"-Datei ist, werden die effektive und gesi-
     cherte Gruppennummer des Prozesses auf die Gruppe der ausgeführten
     Datei gesetzt. Wenn die Datei keine "set-user-ID"- oder "set-group-
     ID"-Datei ist, werden die effektive Benutzernummer, die gesicherte
     Benutzernummer, die effektive Gruppennummer und die gesicherte Grup-
     pennummer nicht verändert.

     setuid()
          Wenn die effektive Benutzernummer des Prozesses, der setuid()
          aufruft, der des Systemverwalters entspricht, werden die reale,
          effektive und gesicherte Benutzernummer auf uid gesetzt.

          Wenn die effektive Benutzernummer des aufrufenden Prozesses nicht
          die des Systemverwalters ist, aber uid entweder die reale Benut-
          zernummer oder die gesicherte Benutzernummer des aufrufenden Pro-
          zesses ist, wird die effektive Benutzernummer auf uid gesetzt.

     setgid()
          Wenn die effektive Gruppennummer des Prozesses, der
          setgid()aufruft, der des Systemverwalters entspricht, werden die
          reale, effektive und gesicherte Gruppennummer auf gid gesetzt.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

setuid(2)                                                         setuid(2)

          Wenn die effektive Benutzernummer des aufrufenden Prozesses nicht
          die des Systemverwalters ist, aber gid entweder die reale Grup-
          pennummer oder die gesicherte Gruppennummer des aufrufenden Pro-
          zesses ist, wird die effektive Gruppennummer auf gid gesetzt.

     setuid() und setgid() scheitern, wenn eine oder mehrere der folgenden
     Bedingungen zutreffen:

     EPERM     Bei setuid(): Wenn die effektive Benutzernummer nicht die
               des Systemverwalters ist und der Parameter uid nicht auf die
               reale oder gesicherte Benutzernummer paßt.

               Bei setgid(): Wenn die effektive Benutzernummer nicht die
               des Systemverwalters ist und der Parameter gid nicht auf die
               reale oder gesicherte Gruppennummer paßt.

     EINVAL    uid oder gid liegen außerhalb des Gültigkeitsbereichs.

ERGEBNIS
     Bei erfolgreicher Beendigung wird 0 zurückgegeben. Sonst wird -1
     zurückgegeben und errno wird gesetzt, um den Fehler anzuzeigen.

SIEHE AUCH
     exec(2), getgroups(2), getuid(2), stat(5).






























Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026