CAPABILITIES(7)

NOM
capabilities - Présentation des capacités Linux

DESCRIPTION
Pour vérifier les permissions, les implémentations Unix traditionnelles distinguent deux catégories de processus : les processus privilégiés (dont l'UID effectif est nul, appelés superutilisateur, ou root), et les processus non privilégiés (dont l'UID effectif n'est pas nul). Les processus privilégiés contournent les vérifications de permissions du noyau, alors que les processus non privilégiés sont soumis à une vérification complète basée sur l'identification du processus (habituellement : UID effectif, GID effectif, et liste des groupes). À 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
Sous Linux 2.6.14, les capacités suivantes sont implémentées :

CAP_AUDIT_CONTROL (depuis Linux 2.6.11)
    Active et désactive l'audit du noyau ; modifie les règles de filtres d'audit ; récupère l'état d'audit et les règles de filtrage.

CAP_AUDIT_WRITE (depuis Linux 2.6.11)
    Permet l'écriture des enregistrements dans le journal d'audit du noyau.

CAP_CHOWN
    Permet de modifier arbitrairement les UID et GID des fichiers (voir chown(2)).

CAP_DAC_OVERRIDE
    Contourne les permissions de lecture, écriture et exécution. (DAC = "discretionary access control", contrôle d'accès à volonté).

CAP_DAC_READ_SEARCH
    Contourne les permissions de lecture de fichiers et celles de lecture et exécution des répertoires.

CAP_FOWNER
    Contourne les vérifications pour les opérations qui demandent que le FS-UID du processus corresponde à l'UID du fichier (par exemple chmod(2), utime(2)), à l'exclusion des opérations couvertes par les CAP_DAC_OVERRIDE et CAP_DAC_READ_SEARCH ; Positionner les attributs de fichier étendus (voir chattr(1)) sur les fichiers arbitraires ; positionner les listes de contrôle d'accès ACL (Ndt : Access Control Lists) sur les fichiers arbitraires ; ignorer le bit sticky pour supprimer un fichier ; spécifier O_NOATIME dans open(2) et fcntl(2). pour les fichiers arbitraires.

CAP_FSETID
    Ne pas effacer les bits Set-UID et Set-GID quand un fichier est modifié ; autoriser le positionnement du bit Set-GID sur un fichier dont le GID ne correspond à aucun GID du processus appelant.

CAP_IPC_LOCK
    Permer le verrouillage de page mémoire (mlock(2), mlockall(2), mmap(2), shmctl(2)).

CAP_IPC_OWNER
    Contourne les vérifications pour les opérations sur les IPC System V.

CAP_KILL
    Contourne les vérifications pour l'émission de signaux (voir kill(2)). Cela inclut l'utilisation de l'ioctl KDSIGACCEPT.

CAP_LEASE
    (Depuis Linux 2.4) Autorise la demande de bail sur n'importe quel fichier (voir fcntl(2)).

CAP_LINUX_IMMUTABLE
    Autorise le positionnement des attributs étendus EXT2_APPEND_FL et EXT2_IMMUTABLE_FL (voir chattr(1)).

CAP_MKNOD
    (Depuis Linux 2.4) Autorise la création de fichiers spéciaux avec mknod(2).

CAP_NET_ADMIN
    Permet certaines opérations réseau (p.ex. obtenir des options privilégiées sur les sockets, activer le multicast, configurer les interfaces, modifier les tables de routage).

CAP_NET_BIND_SERVICE
    Autorise l'attachement d'une socket sur un port réservé (numéro de port inférieur à 1024).

CAP_NET_BROADCAST
    (Inutilisé) Permet le broadcast et l'écoute multicast sur les sockets.

CAP_NET_RAW
    Autorise l'utilisation des sockets RAW et PACKET.

CAP_SETGID
    Accès toute les manipulations des GID du processus et de la liste de groupes supplémentaires, permet l'utilisation de faux GID sur les socket Unix.

CAP_SETPCAP
    Autorise le transfert de toutes capacités de l'ensemble des capacités autorisées de l'appelant à partir ou vers n'importe quel processus.

CAP_SETUID
    Permer la manipulation arbitraire des UID du processus (setuid(2), setreuid(2), setresuid(2), setfsuid(2)) ; permet de transmettre un faux UID sur une socket dans le domaine Unix.

CAP_SYS_ADMIN
    Autorise un ensemble d'opérations d'aministration système, comprenant : quotactl(2), mount(2), umount(2), swapon(2), swapoff(2), sethostname(2), setdomainname(2), IPC_SET et IPC_RMID sur n'importe quel objet IPC System V ; réaliser des opérations sur les attributs étendus trusted et security (voir attr(5)) ; appeler lookup_dcookie(2) ; utiliser ioprio_set(2) pour affecter les classes d'ordonnancement d'entrées-sorties IOPRIO_CLASS_RT et IOPRIO_CLASS_IDLE ; effectuer les opérations KEYCTL_CHOWN et KEYCTL_SETPERM de keyctl(2). permettre d'utiliser un faux UID pour les authentifications des sockets ; dépasser la limite /proc/sys/fs/file-max, la limite à l'échelle du système du nombre de fichiers ouverts, dans les appels système qui ouvrent les fichiers (par exemple, accept(2), execve(2), open(2), pipe(2) ; sans cette capacité, ces appels système échoueront avec l'erreur ENFILE si cette limite est atteinte) ; utiliser l'attribut CLONE_NEWNS avec clone(2) et unshare(2) ; effectuer les opérations KEYCTL_CHOWN et KEYCTL_SETPERM de keyctl(2).

CAP_SYS_BOOT
    Autorise les appels reboot(2) et kexec_load(2).

CAP_SYS_CHROOT
    Autorise l'appel chroot(2).

CAP_SYS_MODULE
    Permet le chargement ou le déchargement de modules du noyaux ; permet la modification des limitations de capacités (voir init_module(2) et delete_module(2)).

CAP_SYS_NICE
    Autorise la diminution de la courtoisie (nice(2), setpriority(2)) et la modification de la valeur de courtoisie de n'importe quel processus ; autorise l'utilisation des ordonnancements temps réel pour le processus appelant, et la modification de l'ordonnancement de n'importe quel processus. (sched_setscheduler(2), sched_setparam(2)) ; définit l'affinité CPU pour les processus arbitraires (sched_setaffinity(2)) ; configurer les classes d'ordonnancement d'entrées-sorties et les priorités pour des processus arbitraires (ioprio_set(2)) ; permettre que migrate_pages(2) soit appliqué à des processus arbitraires et permettre aux processus de migrer vers des n