capabilities | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
À partir du noyau 2.2, Linux divise les privilèges traditionnellement associés au superutilisateur en unités distinctes, appelées capacités, que l'on peut activer ou inhiber individuellement. Les capacités sont des attributs par thread.
Liste des capacités | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ensembles de capacités | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Un enfant créé par fork(2) reçoit une copie des ensembles de capacités de son père. Voir plus loin pour une discussion sur le traitement des capacités lors de execve(2).
En utilisant capset(2), un thread peut manipuler ses propres ensembles, ou s'il a la capacité CAP_SETPCAP, celles d'un autre thread.
Limitation des capacités | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Seul le processus init peut fixer l'ensemble des limitations ; sinon, le superutilisateur peut uniquement effacer des bits dans cet ensemble.
Sur un système standard, la limitation élimine toujours la capacité CAP_SETPCAP. Pour supprimer cette restriction (dangereux !), modifiez la définition de CAP_INIT_EFF_SET dans <include/linux/capability.h> et recompilez le noyau.
La limitation de capacité a été introduite dans le noyau Linux 2.2.11.
Implémentations actuelles et à venir | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Sous Linux 2.6.14, seules les deux premières clauses sont remplies.
Il pourrait même être possible d'associer trois ensembles de capacités avec un fichier exécutable, lesquels, en conjonction avec les ensembles de capacité du thread, déterminera les capacités dont un thread disposera après un execve(2) :
En attendant, comme l'implémentation actuelle ne supporte pas les ensembles de capacités sur les fichiers, au cours d'un execve(2) :
Transformations des capacités lors d'un exec() | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Durant un execve(2), le noyau calcule les nouvelles capacités du processus en utilisant l'algorithme suivant :
P'(permis) = (P(héritable) & F(héritable) | (F(permis) & cap_bset) P'(effectif) = P'(permis) & F(effectif) P'(héritable) = P(héritable) [inchangé]avec :
Dans l'implémentation actuelle, le résultat de cet algorithme est que lorsqu'un processus exécute (execve(2)) un programme Set-UID root, ou lorsqu'un processus avec un UID effectif de 0 exécute (execve(2)) un programme, il acquiert toutes les capacités dans ses ensembles de capacités permis et effectif exceptées celles qui sont masquées par l'ensemble limite de capacités (c'est-à-dire CAP_SETPCAP). Cela fournit une sémantique qui est la même que celle fournie par les systèmes Unix traditionnels.
Effets des modifications de l'UID sur les capacités | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Si un processus, qui a une valeur 0 pour l'un ou plusieurs de ses UID, veut éviter que son ensemble de capacités permis soit effacé lorsqu'il réinitialise tous ses UID à une valeur non nulle, il peut le faire en utilisant l'opération PR_SET_KEEPCAPS de prctl(2).
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
BOGUES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 25 juillet 2003 et révisée le 6 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 7 capabilities ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
CAP_AUDIT_CONTROL (depuis Linux 2.6.11) | Liste des capacités |
CAP_AUDIT_WRITE (depuis Linux 2.6.11) | Liste des capacités |
CAP_CHOWN | Liste des capacités |
CAP_DAC_OVERRIDE | Liste des capacités |
CAP_DAC_READ_SEARCH | Liste des capacités |
CAP_FOWNER | Liste des capacités |
CAP_FSETID | Liste des capacités |
CAP_IPC_LOCK | Liste des capacités |
CAP_IPC_OWNER | Liste des capacités |
CAP_KILL | Liste des capacités |
CAP_LEASE | Liste des capacités |
CAP_LINUX_IMMUTABLE | Liste des capacités |
CAP_MKNOD | Liste des capacités |
CAP_NET_ADMIN | Liste des capacités |
CAP_NET_BIND_SERVICE | Liste des capacités |
CAP_NET_BROADCAST | Liste des capacités |
CAP_NET_RAW | Liste des capacités |
CAP_SETGID | Liste des capacités |
CAP_SETPCAP | Liste des capacités |
CAP_SETUID | Liste des capacités |
CAP_SYS_ADMIN | Liste des capacités |
CAP_SYS_BOOT | Liste des capacités |
CAP_SYS_CHROOT | Liste des capacités |
CAP_SYS_MODULE | Liste des capacités |
CAP_SYS_NICE | Liste des capacités |
CAP_SYS_PACCT | Liste des capacités |
CAP_SYS_PTRACE | Liste des capacités |
CAP_SYS_RAWIO | Liste des capacités |
CAP_SYS_RESOURCE | Liste des capacités |
CAP_SYS_TIME | Liste des capacités |
CAP_SYS_TTY_CONFIG | Liste des capacités |