Linux

CentOS 4.8

capset(2)


CAPGET

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 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écifique à Linux, mais l’API du noyau est susceptible de changer dans l’avenir. 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 capsetp(3) et capgetp(3) qui sont plus faciles à utiliser.

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.

VOIR AUSSI

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

TRADUCTION

Christophe Blaess, 2000.


capset(2)