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
|
.\"
.\" $Id: capget.2,v 1.2 2005-08-24 06:51:16 joey Exp $
.\" written by Andrew Morgan <morgan@linux.kernel.org>
.\" may be distributed as per GPL
.\" Modified by David A. Wheeler <dwheeler@ida.org>
.\" Translated into german by Daniel Kobras (kobras@linux.de)
.\"
.TH CAPGET 2 "20. Januar 2001" "Linux 2.2" "Systemaufrufe"
.SH BEZEICHNUNG
capget, capset \- hole/setze Prozessrechte
.SH "ÜBERSICHT"
.B #undef _POSIX_SOURCE
.br
.B #include <sys/capability.h>
.sp
.BI "int capget(cap_user_header_t " header ", cap_user_data_t " data );
.sp
.BI "int capset(cap_user_header_t " header ", const cap_user_data_t " data );
.SH BESCHREIBUNG
Beginnend mit Linux Kernel 2.2 sind die Befugnisse des Systemadministrators
(root) aufgeteilt in einzelne Rechte. Jeder Prozess besitzt eine Menge
aktueller Rechte, die bestimmen, welche Rechte er im Augenblick wahrnehmen
darf. Jeder Prozess besitzt darüber hinaus einen Satz vererbbarer Rechte,
die via execve(2) weitergereicht werden dürfen, sowie eine Liste erlaubter
Rechte, die er einsetzen oder vererben kann.
.PP
.B capget()
und
.B capset()
bilden die rohe Schnittstelle zum Kernel, um Rechte abzufragen und zu
setzen. Diese Systemaufrufe sind nicht nur Linux-spezifisch, sondern auch
die Form der Schnittstelle kann sich mit jeder Revision des Kernels ändern.
Das gilt für die Anwendung der beiden Funktionen und ganz besonders
für das Format des Typs
.B cap_user_*_t.
.sp
Die portablen Schnittstellen heißen
.IR cap_set_proc (3)
und
.IR cap_get_proc (3);
wenn möglich sollten diese Schnittstellen in Anwendungsprogrammen benutzt
werden. Um auch Zugriff auf Linux-Erweiterungen zu bekommen, stehen die
Aufrufe
.IR capsetp (3)
und
.IR capgetp (3)
zur Verfügung.
.SH "RÜCKGABEWERT"
Bei Erfolg wird null zurückgeliefert. Im Fehlerfall wird -1 übergeben
und
.I errno
entsprechend gesetzt.
.SH FEHLER
.TP
.SB EINVAL
Ein oder mehrere übergebene Argumente waren ungültig.
.TP
.SB EPERM
Es wurde versucht, neue Rechte zur Menge der erlaubten Rechte (permitted)
hinzuzufügen, oder ein nicht erlaubtes Recht in die Liste aktueller
(effective) oder vererbbarer (inheritable) Rechte aufzunehmen.
.SH WEITERE INFORMATIONEN
Die portable Schnittstelle zum Abfragen und Setzen von Prozessrechten wird
durch die Bibliothek
.B libcap
zur Verfügung gestellt. Sie ist zu beziehen über:
.br
.B ftp://linux.kernel.org/pub/linux/libs/security/linux-privs
.SH "SIEHE AUCH"
|