Provided by:
manpages-fr_3.32d0.2p4-1_all 
NOM
credentials - Identifiants de processus
DESCRIPTION
Identifiant de processus (PID)
Chaque processus a un identifiant entier positif, qui lui est attribue
a sa creation (avec fork(2)). Un processus peut connaitre son PID avec
getpid(2). Un PID est represente par le type pid_t (defini dans
<sys/types.h>).
Les PID sont utilises dans un certain nombre d'appels systeme pour
identifier le processus affecte, par exemple : kill(2), ptrace(2),
setpriority(2), setpgid(2), setsid(2), sigqueue(2) et waitpid(2).
Le PID d'un processus est conserve travers d'un execve(2).
Identifiant du processus p`ere (PPID)
L'identifiant de processus pere d'un processus identifie le processus
qui l'a cree avec fork(2). Un processus peut connaitre son PPID avec
getppid(2). Un PPID est represente a l'aide du type pid_t.
Le PPID d'un processus est conserve au travers d'un execve(2).
Identifiant de groupe de processus et identifiant de session
Chaque processus a un identifiant de session et un identifiant de
groupe de processus, tous deux representes par le type pid_t. Un
processus peut connaitre son identifiant de session avec getsid(2), et
son identifiant de groupe de processus avec getpgrp(2).
Un processus cree par fork(2) herite de l'identifiant de session et de
l'identifiant de groupe de processus de son pere. Les identifiants de
session et de groupe de processus sont preserves par execve(2).
Les sessions et les groupes de processus sont des abstractions
destinees a aider le controle des taches dans le shell. Un groupe de
processus (parfois appele << tache >>) est un ensemble de processus
ayant le meme identifiant de groupe de processus ; le shell cree un
nouveau groupe de processus pour executer une commande ou pipeline (par
exemple, les deux processus crees pour executer la commande
<< ls | wc >> sont places dans le meme groupe de processus).
L'appartenance a un groupe de processus peut etre changee avec
setpgid(2). Le processus dont le PID est egal a son identifiant de
groupe de processus est le leader du groupe de processus.
Une session est un ensemble de processus ayant le meme identifiant de
session. Tous les membres d'un groupe de processus ont egalement le
meme identifiant de session (tous les membres d'un groupe de processus
appartiennent a la meme session, donc les sessions et les groupes de
processus forment une hierarchie a deux niveaux). Une nouvelle session
est creee lorsqu'un processus appelle setsid(2), qui cree une nouvelle
session dont l'identifiant est le PID de ce processus. Le createur de
cette session est appele leader de session.
Identifiants d'utilisateur et de groupe
Chaque processus a un certain nombre d'identifiants d'utilisateur et de
groupe. Ces identifiants sont des entiers representes respectivement
avec les types uid_t et gid_t (definis dans <sys/types.h>).
Sous Linux, chaque processus a les identifiants d'utilisateur et de
groupe suivants :
* Identifiant d'utilisateur reel et identifiant de groupe reel. Ces
identifiants determinent le proprietaire du processus. Un processus
peut determiner ses UID et GID reels avec getuid(2) et getgid(2).
* UID effectif et GID effectif. Ces identifiants sont utilises par le
noyau pour determiner les permissions de ce processus lors d'acces a
des ressources partagees telles que les files de messages, la
memoire partagee ou les semaphores. Sur la plupart des systemes
UNIX, ces identifiants determinent aussi les permissions d'acces aux
fichiers. Cependant, Linux utilise l'identifiant d'utilisateur du
systeme de fichiers (decrit ci-dessous) pour cette tache. Un
processus peut determiner son UID (GID) effectif avec geteuid(2)
(getegid(2)).
* UID sauve et GID sauve. Ces identifiants sont utilises dans les
programmes set-user-ID et set-group-ID pour sauvegarder une copie
des identifiants effectifs correspondants lors de l'execution du
programme (consultez execve(2)). Un programme set-user-ID peut
prendre et abandonner des privileges en changeant son UID effectif
entre les valeurs de ses UID reel et sauve. Cet echange est realise
par les appels systeme seteuid(2), setreuid(2) ou setresuid(2). Un
programme set-group-ID peut effectuer les operations correspondantes
avec setegid(2), setregid(2) ou setresgid(2). Un processus peut
obtenir son UID (resp. GID) sauve avec getresuid(2)
(resp. getresgid(2)).
* UID et GID du systeme de fichiers (specifiques a Linux). Ces
identifiants, ainsi que les identifiants de groupe supplementaires
decrits plus bas, sont utilises pour determiner les permissions
d'acces aux fichiers ; consultez path_resolution(7) pour plus de
details. Lorsque l'UID (ou GID) effectif d'un processus est modifie,
le noyau fixe automatiquement l'UID (ou GID) du systeme de fichiers
a la meme valeur. Ainsi, les identifiants du systeme de fichiers
sont en general egaux aux identifiants effectifs, et la semantique
des verifications de permissions sont les memes sous Linux et sous
les autres UNIX. Les identifiants du systeme de fichiers peuvent
prendre une valeur differente des identifiants effectifs en
utilisant les appels setfsuid(2) et setfsgid(2).
* GID supplementaires. Il s'agit d'un ensemble d'identifiants de
groupe qui sont utilises pour les verifications de permissions
d'acces aux fichiers et autres ressources partagees. Sous les noyaux
anterieurs a 2.6.4, un processus pouvait avoir jusqu'a 32 groupes
additionnels ; depuis le noyau 2.6.4, cette limite est de
65536 groupes supplementaires. L'appel sysconf(_SC_NGROUPS_MAX) peut
etre utilise pour determiner le nombre de groupes additionnels
auxquels un processus peut appartenir. Un processus peut consultez
son ensemble de GID additionnels avec getgroups(2), et le modifier
avec setgroups(2).
Un processus fils cree par fork(2) herite des copies des UID et GID de
son pere. Lors d'un execve(2), les UID et GID reels ainsi que les GID
supplementaires sont preserves ; les identifiants effectifs et sauves
peuvent etre modifies comme indique dans execve(2).
En dehors des contextes decrits ci-dessus, les UID d'un processus sont
egalement utilises dans les cas suivants :
* lors de la verification des permissions pour l'envoi de signaux --
consultez kill(2) ;
* lors de la verification des permissions pour la modification des
parametres d'ordonnancement (politesse, politique et priorite
d'ordonnancement temps-reel, priorite d'E/S) avec setpriority(2),
sched_setaffinity(2), sched_setscheduler(2), sched_setparam(2) et
ioprio_set(2) ;
* lors de la verification de limites de ressources ; consultez
getrlimit(2) ;
* lorsque la limite du nombre d'instances inotify que le processus
peut creer est verifiee ; consultez inotify(7).
CONFORMIT'E
Les PID, PPID, PGID et SID sont specifies dans POSIX.1-2001. Les
identifiants reels, effectifs et sauves, et les identifiants de groupes
additionnels sont specifies dans POSIX.1-2001. Les identifiants du
systeme de fichiers sont une extension Linux.
NOTES
La specification POSIX des threads demande que les identifiants soient
partages par tous les threads d'un processus. Toutefois, au niveau du
noyau, Linux maintient des identifiants d'utilisateurs et de groupes
separes pour chaque thread. L'implementation des threads NPTL effectue
un certain travail pour s'assurer que toute modification d'identifiants
d'utilisateur ou de groupe (par exemple, des appels a setuid(2),
setresuid(2), etc.) soit propagee vers tous les threads POSIX d'un
processus.
VOIR AUSSI
bash(1), csh(1), ps(1), access(2), execve(2), faccessat(2), fork(2),
getpgrp(2), getpid(2), getppid(2), getsid(2), kill(2), killpg(2),
setegid(2), seteuid(2), setfsgid(2), setfsuid(2), setgid(2),
setgroups(2), setresgid(2), setresuid(2), setuid(2), waitpid(2),
euidaccess(3), initgroups(3), tcgetpgrp(3), tcsetpgrp(3),
capabilities(7), path_resolution(7), unix(7)
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Julien Cristau et l'equipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.