Man page - wtmp(5)
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 es it pl ja ru ro deManual
utmp
NOMSYNOPSIS
DESCRIPTION
FICHIERS
VERSIONS
STANDARDS
HISTORIQUE
NOTES
VOIR AUSSI
TRADUCTION
NOM
utmp, wtmp - Enregistrements de connexion
SYNOPSIS
#include <utmp.h>
DESCRIPTION
Le fichier utmp permet de voir qui est connectĂ© sur le systĂšme. Tous les programmes nâutilisant pas les enregistrement utmp, il se peut quâil y ait plus dâutilisateurs que ceux affichĂ©s.
Attention : utmp ne doit pas ĂȘtre accessible en Ă©criture par la classe dâutilisateurs « autres », car de nombreux programmes systĂšmes dĂ©pendent (malheureusement) de son intĂ©gritĂ©. En laissant utmp accessible en Ă©criture pour les utilisateurs nâĂ©tant ni le propriĂ©taire ni dans le groupe propriĂ©taire, vous prenez le risque dâavoir de mauvais fichiers de journalisation et des modifications de fichiers systĂšme.
Le fichier est une suite de structures utmp , dĂ©clarĂ©es comme ceci dans <utmp.h> (notez quâil ne sâagit que dâune des dĂ©finitions existantes ; les dĂ©tails dĂ©pendent de la version de la bibliothĂšque C) :
/* Valeurs pour
le champ ut_type, ci-dessous */
#define EMPTY 0 /* Lâenregistrement ne contient pas
dâinformation valable (connu auparavant
comme UT_UNKNOWN sous Linux) */
#define RUN_LVL 1 /* Modification du niveau
dâexĂ©cution systĂšme
(consultez
init
(8)) */
#define BOOT_TIME 2 /* Date de démarrage du
systĂšme
(en
ut_tv
) */
#define NEW_TIME 3 /* Heure aprĂšs le changement
dâheure systĂšme
(en
ut_tv
) */
#define OLD_TIME 4 /* Heure avant le changement
dâheure systĂšme
(en
ut_tv
) */
#define INIT_PROCESS 5 /* Processus lancé par
init
(8) */
#define LOGIN_PROCESS 6 /* Processus leader de session pour
la connexion de lâutilisateur */
#define USER_PROCESS 7 /* Processus normal */
#define DEAD_PROCESS 8 /* Processus terminé */
#define ACCOUNTING 9 /* Pas implémenté */
#define UT_LINESIZE 32
#define UT_NAMESIZE 32
#define UT_HOSTSIZE 256
struct exit_status { /* Type pour ut_exit ci-dessous */
short int e_termination; /* code de fin de processus */
short int e_exit; /* code de sortie de processus */
};
struct utmp {
short ut_type; /* Type dâenregistrement */
pid_t ut_pid; /* PID du processus */
char ut_line[UT_LINESIZE]; /* Nom du
périphérique tty
- « /dev/ » */
char ut_id[4]; /* Suffixe du nom de terminal,
ou identifiant inittab(5)*/
char ut_user[UT_NAMESIZE]; /* Nom dâutilisateur */
char ut_host[UT_HOSTSIZE]; /* Nom dâhĂŽte pour
connexion distante,
ou version du noyau pour les
messages du niveau dâexĂ©cution
(run-level) */
struct exit_status ut_exit; /* Code de fin dâun
processus
déjà marqué DEAD_PROCESS ;
pas utilisé par init(1) de Linux. */
/* Les champs ut_session et ut_tv fields doivent avoir la
mĂȘme
taille lors de la compilation, 32 et 64 bits. Cela permet
aux
fichiers de données et à la mémoire
partagĂ©e dâĂȘtre partagĂ©s
entre les applications 32 et 64 bits. */
#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
int32_t ut_session; /* ID de session (
getsid
(2)),
utilisĂ© pour le fenĂȘtrage */
struct {
int32_t tv_sec; /* Secondes */
int32_t tv_usec; /* Microsecondes */
} ut_tv; /* Horodatage */
#else
long int ut_session; /* ID de session */
struct timeval ut_tv; /* Horodatage */
#endif
int32_t ut_addr_v6[4]; /* Adresse IP hĂŽte
distant ;
les adresses IPv4 utilisent
seulement ut_addr_v6[0] */
char __unused[20]; /* Réservé pour utilisation
future */
};
/* Bidouille pour compatibilité ascendante */
#define ut_name ut_user
#ifndef _NO_UT_TIME
#define ut_time ut_tv.tv_sec
#endif
#define ut_xtime ut_tv.tv_sec
#define ut_addr ut_addr_v6[0]
Cette structure donne le nom du fichier spĂ©cial associĂ© au terminal de lâutilisateur, le nom dâutilisateur, lâheure de connexion sous la forme time (2). Les chaĂźnes de caractĂšres se terminent par un octet nul « \0 » si elles sont plus courtes que les longueurs dĂ©finies dans la structure.
Le premier enregistrement créé est le traitement de inittab (5) par init (1). NĂ©anmoins, avant ça, init (1) positionne le champ ut_type Ă DEAD_PROCESS , et efface ut_user , ut_host et ut_time (remplis avec des octets nuls) de tous les enregistrement dont lâ ut_type nâest ni DEAD_PROCESS ni RUN_LVL , et si aucun processus de PID ut_pid nâexiste. Si aucun enregistrement vide nâest trouvĂ© avec le ut_id correct, init (1) en crĂ©e un nouveau. Il positionne ut_id en sâaidant de lâinittab, ut_pid et ut_time avec les valeurs actuelles et ut_type Ă INIT_PROCESS .
mingetty (8) (ou agetty (8)) rĂ©cupĂšre lâentrĂ©e correspondant Ă son PID, donne Ă ut_type la valeur LOGIN_PROCESS , modifie ut_time , dĂ©finit ut_line et attend lâĂ©tablissement dâune connexion. Une fois quâun utilisateur a Ă©tĂ© authentifiĂ©, login (1) donne Ă ut_type la valeur USER_PROCESS , modifie ut_time et dĂ©finit ut_host et ut_addr . Selon les utilitaires mingetty (8) (ou agetty (8)) et login (1) utilisĂ©s, les enregistrements sont parfois identifiĂ©s par ut_line plutĂŽt que ut_pid , qui est prĂ©fĂ©rable.
Quand init (1) sâaperçoit quâun processus est terminĂ©, il identifie son enregistrement utmp grĂące au champ ut_pid , positionne ut_type Ă DEAD_PROCESS et efface ut_user , ut_host et ut_time avec des octets nuls.
xterm (1), et dâautres Ă©mulateurs de terminaux, crĂ©ent directement un enregistrement USER_PROCESS , engendrant ut_id grĂące Ă la chaĂźne qui suffixe le nom du terminal (les caractĂšres qui suivent /dev/ [pt] ty ). Sâils trouvent un DEAD_PROCESS correspondant Ă cet ID, ils le recycle, sinon ils en crĂ©ent un nouveau. Si possible, ils marquent lâenregistrement comme Ă©tant DEAD_PROCESS lorsquâils se terminent et il faut tenir compte du fait quâils effacent Ă©galement ut_line , ut_time , ut_user et ut_host .
telnetd (8) construit un enregistrement LOGIN_PROCESS et laisse le reste du travail Ă login (1). Une fois que la session telnet est terminĂ©e, telnetd (8) efface lâutmp de la maniĂšre dĂ©crite plus haut.
Le fichier wtmp enregistre les connexions et dĂ©connexions. Son format est exactement le mĂȘme que utmp exceptĂ© quâun utilisateur nul indique une dĂ©connexion sur le terminal associĂ©. De plus, un nom de terminal « ~ » associĂ© Ă un nom dâutilisateur « shutdown » ou « reboot » indique un arrĂȘt ou un redĂ©marrage du systĂšme. Une paire dâenregistrements avec les noms de terminaux « | / } » indique une modification de lâheure systĂšme avec date (1). Le fichier wtmp est maintenu par login (1), init (1) et quelques uns des getty (8) (par exemple mingetty (8) ou agetty (8)). Aucun de ces programmes ne crĂ©e le fichier. Aussi, si on le supprime, les enregistrements de connexions sont arrĂȘtĂ©s.
FICHIERS
/var/run/utmp
/var/log/wtmp
VERSIONS
POSIX.1 ne spĂ©cifie pas de structure utmp , mais une appelĂ©e utmpx (comme Ă©lĂ©ment de lâextension XSI), avec des spĂ©cifications pour les champs ut_type , ut_pid , ut_line , ut_id , ut_user et ut_tv . POSIX.1 ne spĂ©cifie pas les tailles des champs ut_line et ut_user .
Linux dĂ©finit la structure utmpx comme Ă©tant la mĂȘme que la structure utmp .
STANDARDS
Linux.
HISTORIQUE
Les enregistrements utmp de Linux ne se conforment ni à v7/BSD ni à System V. Ils sont en réalité un mélange des deux.
v7/BSD comporte moins de champs ; par exemple pas de ut_type , ce qui conduit les programmes natifs de v7/BSD Ă afficher des entrĂ©es (par exemple) des entrĂ©es « mortes » ou dâidentification (« login »). De plus, il nây a pas de fichier de configuration pour allouer les slots aux sessions. BSD le fait parce quâil lui manque le champ ut_id .
Sous Linux (comme sous System V), le champ ut_id dâun enregistrement ne sera jamais modifiĂ© aprĂšs son initialisation. Lâeffacement de ut_id peut engendrer des conditions de concurrence conduisant Ă avoir des entrĂ©es utmp corrompues et, potentiellement, des trous de sĂ©curitĂ©. Effacer les champs mentionnĂ©s ci-dessus en les remplissant avec des zĂ©ros binaires nâest pas requis par la sĂ©mantique de System V, mais cela permet lâexĂ©cution de nombreux programmes qui sâappuient sur la sĂ©mantique de BSD et qui ne modifient pas utmp. Linux utilise les conventions BSD en ce qui concerne le contenu des lignes, tels que câest prĂ©cisĂ© plus haut.
System V nâa pas de champ ut_host ni ut_addr_v6 .
NOTES
Contrairement Ă dâautres systĂšmes, sur lesquels lâeffacement du fichier arrĂȘte la journalisation, le fichier utmp doit toujours exister sous Linux. Si vous dĂ©sirez dĂ©sactiver who (1), laissez le fichier utmp en place, mais ne le laissez pas lisible par tout le monde.
Le format de ces fichiers dĂ©pend de la machine, et il est recommandĂ© de ne les utiliser que sur la machine oĂč ils ont Ă©tĂ© créés.
Notez que sur les plates-formes biarch , câest-Ă -dire les systĂšmes qui utilisent Ă la fois des applications 32 et 64 bits (x86_64, ppc64, s390x, etc.), ut_tv est de la mĂȘme taille en mode 32 bits et en mode 64 bits. De mĂȘme en ce qui concerne ut_session et ut_time sâils existent. Ceci permet aux fichiers de donnĂ©es et Ă la mĂ©moire partagĂ©e dâĂȘtre partagĂ©s entre les applications 32 bits et 64 bits. Cela est fait en modifiant le type de ut_session en int32_t , et celui de ut_tv en une structure avec deux champs int32_t , tv_sec et tv_usec . Puisque la structure ut_tv est diffĂ©rente de la structure timeval , au lieu de lâappel :
gettimeofday((struct timeval *) &ut.ut_tv, NULL);
il est recommandĂ© dâutiliser la mĂ©thode suivante pour dĂ©finir ce champ
struct utmp ut;
struct timeval tv;
gettimeofday(&tv, NULL);
ut.ut_tv.tv_sec = tv.tv_sec;
ut.ut_tv.tv_usec = tv.tv_usec;
VOIR AUSSI
ac (1), date (1), init (1), last (1), login (1), logname (1), lslogins (1), users (1), utmpdump (1), who (1), getutent (3), getutmp (3), login (3), logout (3), logwtmp (3), updwtmp (3)
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>, Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>, Grégoire Scano <gregoire.scano@malloc.fr> 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 .