Man page - credentials(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pl ja deManual
credentials
NOMDESCRIPTION
Identifiant de processus (PID)
Identifiant du processus parent (PPID)
Identifiant de groupe de processus et identifiant de session
Identifiants dâutilisateur et de groupe
Modification des UID et GID dâun processus
STANDARDS
NOTES
VOIR AUSSI
TRADUCTION
NOM
credentials - Identifiants de processus
DESCRIPTION
Identifiant de processus (PID)
Chaque processus a un identifiant unique entier positif qui lui est attribué à sa création (avec fork (2)). Un processus peut connaßtre son PID avec getpid (2). Un PID est représenté par le type pid_t (défini dans <sys/types.h> ).
Les PID sont utilisĂ©s dans un certain nombre dâappels systĂšme pour identifier le processus affectĂ©, par exemple : kill (2), ptrace (2), setpriority (2), setpgid (2), setsid (2), sigqueue (3) et waitpid (2).
Le PID dâun processus est conservĂ© au travers dâun execve (2).
Identifiant du processus parent (PPID)
Lâidentifiant de processus parent dâun processus identifie le processus qui lâa créé avec fork (2). Un processus peut connaĂźtre son PPID avec getppid (2). Un PPID est reprĂ©sentĂ© Ă lâaide du type pid_t .
Le PPID dâun processus est conservĂ© 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 représentés par le type pid_t . Un processus peut connaßtre son identifiant de session avec getsid (2) et son identifiant de groupe de processus avec getpgrp (2).
Un processus enfant créé par fork (2) hĂ©rite de lâidentifiant de session et de lâidentifiant de groupe de processus de son parent. Les identifiants de session et de groupe de processus sont prĂ©servĂ©s au travers dâun execve (2).
Les sessions et les groupes de processus sont des abstractions destinĂ©es Ă aider au contrĂŽle des tĂąches dans le shell. Un groupe de processus (parfois appelĂ© « tĂąche ») est un ensemble de processus ayant le mĂȘme identifiant de groupe de processus ; le shell crĂ©e un nouveau groupe de processus pour le(s) processus utilisĂ©(s) pour exĂ©cuter une commande unique ou pipeline (par exemple, les deux processus créés pour exĂ©cuter la commande « ls | wc » sont placĂ©s dans le mĂȘme groupe de processus). Lâappartenance Ă un groupe de processus peut ĂȘtre changĂ©e avec setpgid (2). Le processus dont le PID est Ă©gal Ă son identifiant de groupe de processus est le leader du groupe de processus .
Une session est un ensemble de processus ayant le mĂȘme identifiant de session. Tous les membres dâun groupe de processus ont Ă©galement le mĂȘme identifiant de session (tous les membres dâun groupe de processus appartiennent Ă la mĂȘme session, donc les sessions et les groupes de processus forment une hiĂ©rarchie stricte Ă deux niveaux). Une nouvelle session est créée lorsquâun processus appelle setsid (2) qui crĂ©e une nouvelle session dont lâidentifiant est le PID de ce processus. Le crĂ©ateur de cette session est appelĂ© leader de session .
Tous les processus dâune session partagent un terminal de contrĂŽle . Le terminal de contrĂŽle est créé lorsque le leader de session ouvre un terminal pour la premiĂšre fois (sauf si le paramĂštre O_NOCTTY est prĂ©cisĂ© lors de lâappel de open (2)). Un terminal ne peut ĂȘtre le terminal de contrĂŽle que dâune seule session.
Il ne peut y avoir plus dâune tĂąche ayant la place de « tĂąche de premier plan » ; les autres tĂąches de la sessions sont des « tĂąches dâarriĂšre plan ». Seule la tĂąche de premier plan peut recevoir des informations depuis le terminal ; si un job dâarriĂšre plan tente de recevoir des informations du terminal, le signal SIGTTIN est renvoyĂ© au groupe du processus, ce qui a pour effet de suspendre la tĂąche. Si le terminal a reçu lâattribut TOSTOP (consultez termios (3)), alors seule la tĂąche de premier plan est autorisĂ©e Ă afficher des donnĂ©es dans le terminal ; lâenvoi de donnĂ©es de tĂąches dâarriĂšre plan vers le terminal dĂ©clenche un signal SIGTTOU , ce qui a pour effet de suspendre la tĂąche. Lorsquâune touche du clavier qui gĂ©nĂšre un signal est enfoncĂ©e (par exemple, la touche interrupt qui provoque normalement un ContrĂŽle-C), le signal est envoyĂ© au processus de premier plan.
Divers appels systĂšme et fonctions de bibliothĂšque peuvent agir sur tous les membres dâun groupe de processus, notamment kill (2), killpg (2), getpriority (2), setpriority (2), ioprio_get (2), ioprio_set (2), waitid (2) et waitpid (2). Consultez Ă©galement la discussion au sujet des opĂ©rations F_GETOWN , F_GETOWN_EX , F_SETOWN et F_SETOWN_EX dans fcntl (2).
Identifiants dâutilisateur et de groupe
Chaque processus a un certain nombre dâidentifiants dâutilisateur et de groupe. Ces identifiants sont des entiers reprĂ©sentĂ©s respectivement avec les types uid_t et gid_t (dĂ©finis dans <sys/types.h> ).
Sous Linux, chaque processus a les identifiants dâutilisateur et de groupe suivants :
|
- |
Identifiant dâutilisateur rĂ©el et identifiant de groupe rĂ©el. Ces identifiants dĂ©terminent le propriĂ©taire du processus. Un processus peut dĂ©terminer ses UID et GID rĂ©els avec getuid (2) et getgid (2). |
||
|
- |
UID effectif et GID effectif. Ces identifiants sont utilisĂ©s par le noyau pour dĂ©terminer les permissions de ce processus lors dâaccĂšs Ă des ressources partagĂ©es telles que les files de messages, la mĂ©moire partagĂ©e ou les sĂ©maphores. Sur la plupart des systĂšmes UNIX, ces identifiants dĂ©terminent aussi les permissions dâaccĂšs aux fichiers. Cependant, Linux utilise lâidentifiant dâutilisateur du systĂšme de fichiers (dĂ©crit plus bas) pour cette tĂąche. Un processus peut dĂ©terminer son UID (GID) effectif avec geteuid (2) ( getegid (2)). |
||
|
- |
UID sauvegardĂ© et GID sauvegardĂ©. Ces identifiants sont utilisĂ©s dans les programmes set-user-ID et set-group-ID pour sauvegarder une copie des identifiants effectifs correspondants lors de lâexĂ©cution du programme (consultez execve (2)). Un programme set-user-ID peut prendre et abandonner des privilĂšges en changeant son UID effectif entre les valeurs de ses UID rĂ©el et sauvegardĂ©. Cet Ă©change est rĂ©alisĂ© par les appels systĂšme seteuid (2), setreuid (2) ou setresuid (2). Un programme set-group-ID peut effectuer les opĂ©rations correspondantes avec setegid (2), setregid (2) ou setresgid (2). Un processus peut obtenir son UID sauvegardĂ© avec getresuid (2) et son GID sauvegardĂ© avec getresgid (2)). |
||
|
- |
UID et GID du systĂšme de fichiers (spĂ©cifiques Ă Linux). Ces identifiants, ainsi que les identifiants de groupe additionnels dĂ©crits plus bas, sont utilisĂ©s pour dĂ©terminer les permissions dâaccĂšs aux fichiers ; consultez path_resolution (7) pour plus de dĂ©tails. Lorsque lâUID (ou GID) effectif dâun processus est modifiĂ©, le noyau dĂ©finit automatiquement lâUID (ou GID) du systĂšme de fichiers Ă la mĂȘme valeur. Ainsi, les identifiants du systĂšme de fichiers sont en gĂ©nĂ©ral Ă©gaux aux identifiants effectifs, et la sĂ©mantique des vĂ©rifications de permissions sont les mĂȘmes sous Linux et sous les autres UNIX. Les identifiants du systĂšme de fichiers peuvent prendre une valeur diffĂ©rente des identifiants effectifs en utilisant les appels setfsuid (2) et setfsgid (2). |
||
|
- |
GID additionnels. Il sâagit dâun ensemble dâidentifiants de groupe supplĂ©mentaires qui sont utilisĂ©s pour les vĂ©rifications de permissions dâaccĂšs aux fichiers et autres ressources partagĂ©es. Avant Linux  2.6.4, un processus pouvait avoir jusquâĂ 32 groupes additionnels ; depuis Linux 2.6.4, cette limite est de 65536 groupes additionnels. Lâappel sysconf(_SC_NGROUPS_MAX) peut ĂȘtre utilisĂ© pour dĂ©terminer le nombre de groupes additionnels auxquels un processus peut appartenir. Un processus peut consulter son ensemble de GID additionnels avec getgroups (2). |
Un processus enfant créé par fork (2) hĂ©rite des copies des UID et GID de son parent. Lors dâun execve (2), les UID et GID rĂ©els ainsi que les GID supplĂ©mentaires sont prĂ©servĂ©s ; les identifiants effectifs et sauvegardĂ©s peuvent ĂȘtre modifiĂ©s comme indiquĂ© dans execve (2).
En dehors des contextes dĂ©crits ci-dessus, les UID dâun processus sont Ă©galement utilisĂ©s dans les cas suivants :
|
- |
lors de la vĂ©rification des permissions pour lâenvoi de signaux (consultez kill (2)) ; |
||
|
- |
lors de la vĂ©rification des permissions pour la modification des paramĂštres dâordonnancement (politesse, politique et prioritĂ© dâordonnancement temps-rĂ©el, prioritĂ© dâE/S) avec setpriority (2), sched_setaffinity (2), sched_setscheduler (2), sched_setparam (2), sched_setattr (2) et ioprio_set (2) ; |
||
|
- |
lors de la vérification de limites de ressources (consultez getrlimit (2)) ; |
||
|
- |
lorsque la limite du nombre dâinstances inotify que le processus peut crĂ©er est vĂ©rifiĂ©e (consultez inotify (7)). |
Modification des UID et GID dâun processus
Soumis aux
rÚgles décrites dans les pages de manuel
concernées, un processus peut se servir des API
suivantes pour modifier ses UID et GID.
setuid
(2)Â (
setgid (2)) Modifier lâUID (ou le GID) rĂ©el (et Ă©ventuellement effectif et sauvegardĂ©) dâun processus.
seteuid (2)Â (
setegid (2)) Modifier lâUID (ou le GID) effectif dâun processus.
setfsuid (2)Â (
setfsgid (2)) Modifier lâUID (ou le GID) du systĂšme de fichiers dâun processus.
setreuid (2)Â (
setregid (2)) Modifier les UID (ou le GID) rĂ©el et effectif (et Ă©ventuellement sauvegardĂ©) dâun processus.
setresuid (2)Â (
setresgid (2)) Modifier les UID (ou le GID) rĂ©el, effectif et sauvegardĂ© dâun processus.
setgroups (2)
Modifier la liste des groupes additionnels dâun processus
Toutes les modifications dâUID (ou de GID) effectif dâun processus sont automatiquement propagĂ©es sur lâUID (ou le GID) du systĂšme de fichiers du processus. Les modifications dâUID (ou de GID) effectif dâun processus peuvent aussi affecter lâattribut « dumpable » du processus, comme dĂ©crit dans prctl (2).
Les modifications dâUID (ou de GID) dâun processus peuvent affecter les capacitĂ©s du processus, comme dĂ©crit dans capabilities (7).
STANDARDS
Les PID, PPID, PGID et SID sont spécifiés dans POSIX.1. Les identifiants réels, effectifs et sauvegardés, et les identifiants de groupe additionnels sont spécifiés dans POSIX.1.
Les UID et GID du systĂšme de fichiers sont une extension de Linux.
NOTES
Plusieurs champs du fichier /proc/ pid /status montrent les identifiants du processus dĂ©crits ci-dessus. Consultez proc (5) pour plus dâinformations.
La spĂ©cification POSIX des threads demande que les identifiants soient partagĂ©s par tous les threads dâun processus. Toutefois, au niveau du noyau, Linux maintient des identifiants dâutilisateurs et de groupes sĂ©parĂ©s pour chaque thread. LâimplĂ©mentation des threads NPTL effectue un certain travail pour sâassurer que toute modification dâidentifiants dâutilisateur ou de groupe (par exemple, au moyen dâappels Ă setuid (2) ou setresuid (2)) soit propagĂ©e vers tous les threads POSIX dâun processus. Consultez nptl (7) pour plus de dĂ©tails.
VOIR AUSSI
bash (1), csh (1), groups (1), id (1), newgrp (1), ps (1), runuser (1), setpriv (1), sg (1), su (1), access (2), execve (2), faccessat (2), fork (2), getgroups (2), getpgrp (2), getpid (2), getppid (2), getsid (2), kill (2), setegid (2), seteuid (2), setfsgid (2), setfsuid (2), setgid (2), setgroups (2), setpgid (2), setresgid (2), setresuid (2), setsid (2), setuid (2), waitpid (2), euidaccess (3), initgroups (3), killpg (3), tcgetpgrp (3), tcgetsid (3), tcsetpgrp (3), group (5), passwd (5), shadow (5), capabilities (7), namespaces (7), path_resolution (7), pid_namespaces (7), pthreads (7), signal (7), system_data_types (7), unix (7), user_namespaces (7), sudo (8)
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .