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
BEZEICHNUNGĂBERSICHT
BESCHREIBUNG
DATEIEN
VERSIONEN
STANDARDS
GESCHICHTE
ANMERKUNGEN
SIEHE AUCH
ĂBERSETZUNG
BEZEICHNUNG
utmp, wtmp - AnmeldedatensÀtze
ĂBERSICHT
#include <utmp.h>
BESCHREIBUNG
Die Datei utmp gibt Auskunft darĂŒber, wer das System im Moment benutzt. Da nicht alle Programme utmp benutzen, kann es jedoch noch mehr Systembenutzer geben.
Warnung : utmp darf nicht allgemein schreibbar sein, weil viele Systemprogramme (törichterweise) von der Korrektheit dieser Datei abhĂ€ngig sind. Falls Sie utmp fĂŒr irgendwelche anderen Benutzer als Besitzer und Gruppe schreibbar lassen, riskieren Sie falsche EintrĂ€ge in Systemprotokolldateien und Ănderungen von Systemdateien.
Die Datei besteht aus einer Sequenz von utmp -Strukturen. Die Struktur wird wie folgt in <utmp.h> deklariert. (Beachten Sie, dass dies nur eine von mehreren Definitionen ist, Details hÀngen von der Version der Libc ab.)
/* nachfolgend
die Werte fĂŒr das Feld ut_type */
#define EMPTY 0 /* Datensatz enthÀlt keine
gĂŒltigen Daten
(frĂŒher unter Linux als UT_UNKNOWN
bekannt) */
#define RUN_LVL 1 /* Wechsel des System-Runlevels (siehe
init
(1)) */
#define BOOT_TIME 2 /* Zeitpunkt des Systemstarts (in
ut_tv
) */
#define NEW_TIME 3 /* Zeit nach Ănderung der Systemuhr
(in
ut_tv
) */
#define OLD_TIME 4 /* Zeit vor Ănderung der Systemuhr
(in
ut_tv
) */
#define INIT_PROCESS 5 /* Prozess von
init
(1) erzeugt
*/
#define LOGIN_PROCESS 6 /* Prozessgruppen-FĂŒhrer
fĂŒr
Benutzer-Anmeldung */
#define USER_PROCESS 7 /* normaler Prozess */
#define DEAD_PROCESS 8 /* beendeter Prozess */
#define ACCOUNTING 9 /* nicht implementiert */
#define UT_LINESIZE 32
#define UT_NAMESIZE 32
#define UT_HOSTSIZE 256
struct utmp {
short ut_type; /* Typ des Datensatzes */
pid_t ut_pid; /* PID des Anmeldeprozesses */
char ut_line[UT_LINESIZE]; /* GerÀtename des Terminals
-
»/dev/« */
char ut_id[4]; /* Suffix des Terminalnamens,
oder inittab(5)-Kennung */
char ut_user[UT_NAMESIZE]; /* Benutzername */
char ut_host[UT_HOSTSIZE]; /* Rechnername fĂŒr Anmeldung
auf
fernem System oder Kernel-Version
fĂŒr Runlevel-Nachrichten */
struct exit_status ut_exit; /* Exit-Status eines als
DEAD_PROCESS gekennzeichneten
Prozesses; wird nicht von
Linux-Version von init(1)
verwendet */
/* Die Felder
ut_session und ut_tv mĂŒssen bei der Kompilierung
fĂŒr 32 Bit und 64 Bit dieselbe GröĂe haben.
Dadurch können
Datendateien und gemeinsam genutzter Speicher von 32-Bit-
und 64-Bit-Anwendungen gemeinsam verwendet werden. */
#if __WORDSIZE
== 64 && defined __WORDSIZE_COMPAT32
int32_t ut_session; /* Session ID (
getsid
(2)),
fĂŒr
Fensterverwaltung verwendet*/
struct {
int32_t tv_sec; /* Sekunden */
int32_t tv_usec; /* Mikrosekunden */
} ut_tv; /* Zeit-Datensatz wurde
eingetragen */
#else
long ut_session; /* Session ID */
struct timeval ut_tv; /* Zeit-Datensatz wurde
eingetragen */
#endif
Diese Struktur enthĂ€lt den Namen der GerĂ€tedatei fĂŒr das Terminal des Benutzers, seinen Namen bei der Anmeldung und deren Zeitpunkt im Format von time (2). Zeichenketten werden mit einem Nullbyte (»\0«) beendet, wenn sie kĂŒrzer als das Feld sind.
Die ersten EintrĂ€ge erstellt init (1) bei der Verarbeitung von inittab (5). Bevor ein solcher Eintrag verarbeitet wird, rĂ€umt init (1) utmp auf, indem bei jedem Eintrag, dessen ut_type nicht DEAD_PROCESS oder RUN_LVL ist und fĂŒr den kein Prozess mit der PID ut_pid existiert, ut_type auf DEAD_PROCESS gesetzt wird und ut_user , ut_host und ut_time mit Nullbytes gefĂŒllt werden. Falls kein leerer Datensatz mit der benötigten ut_id gefunden wird, erstellt init (1) einen neuen. Dabei wird ut_id von der Inittab ĂŒbernommen, ut_pid und ut_time werden auf die aktuellen Werte und ut_type auf INIT_PROCESS gesetzt.
mingetty (8) (oder agetty (8)) findet den Eintrag mittels der PID, Àndert ut_type zu LOGIN_PROCESS , Àndert ut_time , setzt ut_line und wartet darauf, dass eine Verbindung hergestellt wird. Nachdem login (1) einen Benutzer authentifizieren konnte, Àndert es ut_type zu USER_PROCESS , Àndert ut_time und setzt ut_host sowie ut_addr . AbhÀngig von mingetty (8) (oder agetty (8)) und login (1) könnten DatensÀtze auch mittels ut_line anstatt der vorzuziehenden ut_pid gefunden werden.
Wenn init (1) feststellt, dass ein Prozess beendet wurde, bestimmt es den entsprechenden Eintrag in utmp mittels ut_pid , setzt ut_type auf DEAD_PROCESS und fĂŒllt ut_user , ut_host sowie ut_time mit Null-Bytes.
xterm (1) und andere Terminal-Emulatoren erstellen direkt einen USER_PROCESS -Datensatz und erzeugen die ut_id durch den Suffix des Terminalnamens (die Zeichen, die auf /dev/ [pt] ty folgen). Falls sie einen DEAD_PROCESS -Datensatz fĂŒr diese ID finden, wird er wieder benutzt, ansonsten wird ein neuer Eintrag erstellt. Falls möglich, markieren sie vor Beendigung den Eintrag als DEAD_PROCESS und es wird geraten, dass sie ut_line , ut_time , ut_user und ut_host ebenfalls mit Nullen fĂŒllen.
telnetd (8) erzeugt einen LOGIN_PROCESS -Datensatz und lÀsst login (1) den Rest erledigen. Nachdem die Telnet-Sitzung beendet ist, rÀumt telnetd (8) utmp in der oben beschriebenen Art und Weise auf.
Die Datei wtmp zeichnet alle An- und Abmeldungen im System auf. Das Format gleicht utmp , mit der Ausnahme, dass ein leerer Benutzername eine Abmeldung vom zugehörigen Terminal anzeigt. Weiterhin bedeutet der Terminalname ~ mit den Benutzernamen shutdown oder reboot ein Herunterfahren bzw. den Neustart des Systems. AuĂerdem protokolliert das Paar von Terminalnamen | / } die alte/neue Systemzeit, wenn diese durch date (1) geĂ€ndert wird. wtmp wird durch login (1), init (1) und getty (1) (z.B. mingetty (8) oder agetty (8)) verwaltet. Keines dieser Programme erstellt die Datei. Somit wird durch Löschen der Datei das Aufbewahren der DatensĂ€tze deaktiviert.
DATEIEN
/var/run/utmp
/var/log/wtmp
VERSIONEN
POSIX.1 definiert keine utmp -Struktur, sondern eine namens utmpx (als Teil der XSI-Erweiterung) mit den Spezifikationen der Felder ut_type , ut_pid , ut_line , ut_id , ut_user und ut_tv . Die LĂ€nge der Felder ut_line and ut_user wird von POSIX.1 nicht spezifiziert.
Linux definiert die Strukturen utmpx und utmp als identisch.
STANDARDS
Linux.
GESCHICHTE
Die EintrÀge in Linux-utmp-Dateien sind weder zu v7/BSD noch zu System V konform, sondern eine Mischung aus beiden.
v7/BSD hat weniger Felder, vor allem fehlt ut_type , was native v7/BSD-Programme veranlasst, tote EintrÀge und AnmeldeeintrÀge anzuzeigen. Weiterhin gibt es keine Konfigurationsdatei, die jeder Sitzung eine Eintragsnummer zuordnet. Das ist bei BSD der Fall, weil dort das Feld ut_id fehlt.
In Linux (wie auch in System V) wird das ut_id -Feld nicht mehr geĂ€ndert, nachdem ihm ein Wert zugewiesen wurde. Dadurch wird dieser Slot reserviert, ohne dass eine Konfigurationsdatei erforderlich ist. Das Löschen von ut_id fĂŒhrt zu Race-Conditions und resultiert in beschĂ€digten EintrĂ€gen in utmp und potenziellen SicherheitslĂŒcken. Die Semantik von System V erfordert nicht, die oben angegebenen Felder mit Nullbytes zu löschen, aber ermöglicht die Nutzung vieler Programme, die die BSD-Semantik verwenden und utmp nicht verĂ€ndern. Wie oben beschrieben, wendet Linux die BSD-Konventionen fĂŒr Leitungsnamen an.
In System V gibt es die Felder ut_host und ut_addr_v6 nicht.
ANMERKUNGEN
Im Gegensatz zu anderen Systemen, in denen die Protokollierung in utmp durch Löschen der Datei abgeschaltet werden kann, muss utmp bei Linux immer vorhanden sein. Wenn Sie who (1) deaktivieren wollen, darf utmp nicht fĂŒr alle anderen Systembenutzer (world) lesbar sein.
Das Dateiformat ist maschinenabhÀngig. Es wird daher empfohlen, dass es nur auf der Architektur verarbeitet wird, auf der es erstellt wurde.
Beachten Sie, dass auf biarch -Architekturen, also Systemen, die sowohl 32-Bit- und 64-Bit-Anwendungen ausfĂŒhren können (x86-64, ppc64, s390x usw.), ut_tv im 32-Bit-Modus und auch im 64-Bit-Modus die gleiche GröĂe hat. Das gleiche gilt fĂŒr ut_session und ut_time , wenn Sie vorhanden sind. Dies ermöglicht den gemeinsamen Zugriff von 32-Bit- und 64-Bit-Anwendungen auf Datendateien und gemeinsamen Speicher. Das wird erreicht, indem der Typ von ut_session zu int32_t geĂ€ndert wird und der von ut_tv zu einer »struct« mit zwei int32_t -Feldern ( tv_sec und tv_usec ). Da ut_tv womöglich nicht das Gleiche ist wie ein struct timeval , wird anstelle des Aufrufs
gettimeofday((struct timeval *) &ut.ut_tv, NULL);
die folgende Methode empfohlen, das Feld zu setzen:
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;
SIEHE AUCH
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)
ĂBERSETZUNG
Die deutsche Ăbersetzung dieser Handbuchseite wurde von Daniel Kobras <kobras@linux.de>, Helge Kreutzmann <debian@helgefjell.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario BlĂ€ttermann <mario.blaettermann@gmail.com> erstellt.
Diese Ăbersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezĂŒglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ĂŒbernommen.
Wenn Sie Fehler in der Ăbersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ăbersetzer: debian-l10n-german@lists.debian.org .