int capget(cap_user_header_t p_entête, cap_user_data_t p_données);
int capset(cap_user_header_t p_entête, const cap_user_data_t p_données);
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 extensions Linux, essayez d'employer plutôt les interfaces plus simples capsetp(3) et capgetp(3).
#define _LINUX_CAPABILITY_VERSION 0x19980330 typedef struct __user_cap_header_struct { int version; int pid; } *cap_user_header_t; typedef struct __user_cap_data_struct { int effective; int permitted; int inheritable; } *cap_user_data_t;
Les appels retourneront EINVAL, et écriront _LINUX_CAPABILITY_VERSION dans le champ version de p_entête lorsqu'une autre version sera spécifiée.
Les appels se réfèreront aux capacités du thread indiqué par le champ pid de p_entête lorsqu'il n'est pas nul ou à celles du thread courant si pid vaut 0. Si pid fait référence à un processus simple thread, pid peut être spécifié comme un PID traditionnel ; opérer sur un thread d'un processus multithread nécessite un TID du type renvoyé par gettid(2). Pour capset(), pid peut également être : -1, signifiant effectuer la modification sur tous les threads excepté l'appelant et init(8) ; ou bien une valeur inférieure à -1, auquel cas la modification est appliquée à tous les membres du groupe de processus dont l'ID est -pid.
Pour les détails sur les données, voir capabilities(7).
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 4 janvier 2000 et révisée le 24 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 capget ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 24 juin 2008