CAPGET

Section: Manuel du programmeur Linux (2)
Updated: 18 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
VOIR AUSSI
TRADUCTION

NOM

capget, capset - Configurer les capacités d'un processus.

SYNOPSIS

#undef _POSIX_SOURCE
#include <sys/capability.h>
int capget(cap_user_header_t entête, cap_user_data_t données);
int capset(cap_user_header_t entête, const cap_user_data_t données);

DESCRIPTION

Depuis Linux 2.2, la toute puissance du Super-Utilisateur (root) a été scindée en plusieurs ensembles distincts. Chaque processus dispose d'un ensemble de capacités effectives permettant d'identifier ses droits de réaliser certaines actions. Chaque processus a aussi un ensemble de capacités héritables, qu'il peut transmettre au travers d'un execve(2) et un ensemble de capacités éventuelles qu'il peut rendre effectives ou héritables.
Ces deux fonctions constituent l'interface brute du noyau pour configurer ou lire les capacités d'un processus. Non seulement ces appels-système sont spécifiques Linux, mais l'API du noyau est susceptible de changer. L'utilisation de ces fonctions (en particulier le format du type cap_user_*_t) risque de varier lors de nouvelles mises à jour du noyau.
L'interface portable est constituée des fonctions cap_set_proc(3) et cap_get_proc(3); si possible utilisez plutôt ces routines dans vos applications. Si vous désirez vraiment utiliser les extension Linux, essayez d'employer plutôt les interfaces plus simples capsetp(3) et capgetp(3).

VALEUR RENVOYÉE

Si elles réussissent, ces routines renvoient 0. Sinon elles renvoient -1 et configurent errno avec le code d'erreur approprié

ERREURS

EINVAL
Un argument est invalide
EPERM
On a essayé d'ajouter une capacité dans l'ensemble éventuel, ou de placer une capacité dans l'ensemble effectif ou héritable qui ne se trouvait pas dans l'ensemble éventuel.

NOTES

L'interface portable pour les fonctions de configuration et de lecture des permissions est fournie par la bibliothèque libcap disponible à :
ftp://linux.kernel.org/pub/linux/libs/security/linux-privs

VOIR AUSSI

TRADUCTION

Christophe Blaess, 1996-2003.