1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Copyright (C) 1997 Andries Brouwer (aeb@cwi.nl)
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" Translated into German by Dennis Stampfer <kontakt@dstampfer.de>
.\"
.TH SETRESUID 2 "26. August 2002" "" "Systemaufrufe"
.SH BEZEICHNUNG
setresuid, setresgid \- setzt die reelle, effektive und gespeicherte Benutzer- oder Gruppenidentität
.SH "ÜBERSICHT"
.B #include <unistd.h>
.sp
.BI "int setresuid(uid_t " ruid ", uid_t " euid ", uid_t " suid );
.br
.BI "int setresgid(gid_t " rgid ", gid_t " egid ", gid_t " sgid );
.SH BESCHREIBUNG
.B setresuid
und
.B setresgid
ändern die wirkliche,
effektive und die gespeicherte Benutzer- oder Gruppenidentität des aktuellen Prozesses.
.PP
Unprivilegierte Prozesse eines Benutzers (wenn die wirkliche, effektive und
gespeicherte Identität nicht 0 ist) können die wirkliche, effektive und gespeicherte
Benutzeridentität jeweils zu einem der Folgenden ändern: aktuelle uid, aktuelle
effektive uid oder aktuelle gespeicherte uid.
Das bedeutet also, dass Prozesse die nicht root gehören, die Identität auf
ihre eigenen, nicht aber auf die eines anderen Benutzers (oder gar root)
setzen können.
.PP
Der super-user (root) kann die wirkliche, effektive und gespeicherte
Benutzeridentität auf beliebige Werte setzen.
.PP
Ist einer der Parameter -1, bleibt der entsprechende Wert (die dazugehörige
Identität) unverändert.
.PP
.B setresgid
ändert die wirkliche, effektive und gespeicherte Gruppenidentität des aktuellen Prozesses
mit den Einschränkungen der wirklichen, effektiven und gespeicherten
Benutzeridentität (falls nicht 0).
.SH RÜCKGABEWERT
Bei Erfolg wird 0 zurück gegeben. Bei Fehlern wird \-1 zurückgegeben und
.I errno
entsprechend gesetzt.
.SH FEHLER
.TP
.B EPERM
Der Prozess hat nicht die benötigten Rechte, versucht aber die IDs zu ändern.
.SH KONFORM ZU
Diese Funktionen sind Linuxspezifisch.
.SH GESCHICHTE
Diese Systemaufrufe wurden zuerst in HP-UX eingeführt. Sie stehen
seit Linux 2.1.44 auch unter Linux zur Verfügung. Inzwischen gibt es
sie ebenfalls in FreeBSD (zur Emulierung von Linux-Programmen).
.SH BEMERKUNGEN
Unter HP-UX und FreeBSD befinden sich die Prototypen in <unistd.h>.
Unter Linux gibt es bisher keine Include-Datei für die Prototypen, das
ist ein Problem in der glibc. Programme, die diese Systemaufrufe
verwenden möchten, müssen die Prototypen selbst zur Verfügung stellen.
.SH SEE ALSO
.BR getuid (2),
.BR setuid (2),
.BR setreuid (2),
.BR getresuid (2),
.BR getreuid (2).
|