1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
|
#! /bin/sh /usr/share/dpatch/dpatch-run
## 10_utmp_5_updates.dpatch by Daniel Kobras <kobras@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Typo fixes. Update usage example to glibc 2.2.5.
@DPATCH@
--- manpages-de-0.4.orig/man5/utmp.5
+++ manpages-de-0.4/man5/utmp.5
@@ -24,8 +24,11 @@
.\" Modified Thu Feb 26 16:08:49 MET 1995 by Michael Haardt
.\" Modified Sat Jul 20 14:39:03 MET DST 1996 by Michael Haardt
.\" Modified Sat Aug 10 15:26:25 MET DST 1996 by Michael Haardt
+.\" 2002-09-24 Daniel Kobras <kobras@linux.de>
+.\" * Typo fixes.
+.\" * Update example struct to glibc 2.2.5.
.\"
-.TH UTMP 5 "10. August 1996" "Linux" "Dateiformate"
+.TH UTMP 5 "24. September 2002" "Linux" "Dateiformate"
.SH BEZEICHNUNG
utmp, wtmp \- login Eintrge
.SH BERSICHT
@@ -46,8 +49,12 @@
fr jeden schreibbar lassen, riskieren Sie falsche Eintrge in
Systemlogdateien und Modifikationen von Systemdateien.
-Die Datei besteht aus einer Sequenz von Eintrgen der folgenden Struktur,
-die in der Include-Datei deklariert ist:
+Die Datei besteht aus einer Sequenz von Eintrgen der Struktur
+.IR utmp ,
+die ber die Include-Datei deklariert wird. Das Format von
+.I utmp
+ist nicht strikt festgelegt, sondern hngt ab von der Version der
+verwendeten libc. Das folgende Beispiel ist glibc 2.2.5 entnommen:
.RS
.nf
.sp
@@ -61,20 +68,35 @@
#define LOGIN_PROCESS 6
#define USER_PROCESS 7
#define DEAD_PROCESS 8
+#define ACCOUNTING 9
-#define UT_LINESIZE 12
-#define UT_NAMESIZE 8
-#define UT_HOSTSIZE 16
+#define UT_LINESIZE 32
+#define UT_NAMESIZE 32
+#define UT_HOSTSIZE 256
+
+struct exit_status {
+ short int e_termination; /* Abbruchstatus des Prozesses. */
+ short int e_exit; /* Rckgabestatus des Prozesses. */
+};
+
struct utmp {
- short ut_type; /* Typ des Eintrags */
- pid_t ut_pid; /* Prozenummer */
+ short int ut_type; /* Typ des Eintrags */
+ pid_t ut_pid; /* Kennung des Anmeldeprozesses */
char ut_line[UT_LINESIZE]; /* Gertename \- "/dev/" */
- char ut_id[2]; /* init id or abgek. Leitungsname */
- time_t ut_time; /* Zeit */
+ char ut_id[4]; /* init id or abgek. Leitungsname */
char ut_user[UT_NAMESIZE]; /* Benutzer login-Name */
char ut_host[UT_HOSTSIZE]; /* Rechner-Name bei remote login */
- long ut_addr; /* IP Adresse des remote Rechners */
+ struct exit_status ut_exit; /* Rckgabestatus eines Prozesses, der
+ als DEAD_PROCESS markiert ist. */
+ long int ut_session; /* Sessionkennung, benutzt, um mehrere
+ Fenster zu unterscheiden. */
+ struct timeval ut_tv; /* Zeit, zu der der Eintrag erstellt
+ wurde. */
+ int32_t ut_addr_v6[4]; /* Internetadresse des Ursprungsrechners
+ der Login-Verbindung. */
+ char __unused[20]; /* Unbenutzt, reserviert fr sptere
+ Verwendung. */
};
.sp
.fi
@@ -94,8 +116,8 @@
.I utmp
auf, indem bei jedem Eintrag dessen
.BR ut_type " nicht"
-.BR DEAD_PROCESS " oder " BRUN_LVL
-ist und fr den kein Proze mit der PID
+.BR DEAD_PROCESS " oder " RUN_LVL
+ist und fr den kein Prozess mit der PID
.BR ut_pid " existiert,"
.BR ut_type " auf " DEAD_PROCESS
gesetzt wird und
@@ -127,8 +149,8 @@
Wenn
.BR init (8)
-feststellt, da ein Proze beendet wurde, lokalisiert es den
-entsprechenden utmp Eintrag mittels
+feststellt, da ein Prozess beendet wurde, lokalisiert es den
+entsprechenden utmp-Eintrag mittels
.BR ut_pid ", setzt"
.BR ut_type " auf " DEAD_PROCESS " und fllt "
.BR ut_user ,
@@ -136,7 +158,7 @@
.BR xterm (1)
und andere Terminal-Emulatoren erstellen direkt einen
-.B USER_PROCESS
+.BR USER_PROCESS \-
Eintrag und erzeugen die
.BR ut_id " entweder durch die letzten beiden Zeichen von"
.BI /dev/ttyp %c
@@ -145,7 +167,7 @@
bei
.BI /dev/pts/ %d.
Falls sie einen
-.B DEAD_PROCESS
+.BR DEAD_PROCESS \-
Eintrag fr diese ID finden, wird er wieder benutzt, ansonsten wird ein
neuer Eintrag erstellt. Falls mglich, markieren sie vor Beendigung den
Eintrag als
@@ -153,22 +175,22 @@
.BR ut_line ", " ut_time ", " ut_user " und " ut_host " mit Nullen fllen."
.BR xdm (8)
-sollte keinen utmp Eintrag erstellen, weil es kein
+sollte keinen utmp-Eintrag erstellen, weil es kein
zugeordnetes Terminal gibt. Falls es trotzdem gemacht wird, werden
-Fehlermledungen wie finger: can not stat /dev/machine.dom die Folge
-sein. Es sollte jedoch ein wtmp Eintrag erzeugt werden, genau wie es
+Fehlermeldungen wie finger: can not stat /dev/machine.dom die Folge
+sein. Es sollte jedoch ein wtmp-Eintrag erzeugt werden, genau wie es
auch bei
.BR ftpd (8)
geschieht.
.BR telnetd (8)
erzeugt einen
-.BR LOGIN_PROCESS " Eintrag und lt"
+.BR LOGIN_PROCESS "\-Eintrag und lsst"
.BR login (8)
den Rest erledigen. Nachdem die telnet-Sitzung beendet ist, markiert
.BR telnetd (8)
den
-.I utmp
+.IR utmp \-
Eintrag in der oben
beschriebenen Art und Weise.
@@ -208,12 +230,12 @@
Feld eines Eintrags nach dem initialen Setzen nie wieder gendert,
wodurch diese Eintragnummer ohne jede Konfigurationsdatei reserviert wird.
.B ut_id
-zu lschen fhrt zu race conditions und resultiert in beschdigten utmp
-Eintrgen und potentiellen Sicherheitslchern. Die SYSV Semantik verlangt
+zu lschen fhrt zu Race-Conditions und resultiert in beschdigten utmp
+Eintrgen und potentiellen Sicherheitslchern. Die SYSV-Semantik verlangt
nicht, die oben angegebenen Felder mit Null-Bytes zu lschen, aber es
-erlaubt viele Programme zu benutzen, die die BSD Semantik benutzen und
-utmp nicht verndern. Wie beschrieben, benutzt Linux die BSD Konventionen
-fuer Leitungsnamen. SYSV benutzt nut das Typ-Feld um solche Eintrge zu
+erlaubt viele Programme zu benutzen, die die BSD-Semantik benutzen und
+utmp nicht verndern. Wie beschrieben, benutzt Linux die BSD-Konventionen
+fr Leitungsnamen. SYSV benutzt nur das Typ-Feld um solche Eintrge zu
markieren und zeichnet Meldungen wie \fB"new time"\fP im Leitungs-Feld
auf. SYSV hat ein Feld mehr, um den Exit-Status von beendeten Prozessen
aufzuzeichnen.
@@ -231,6 +253,9 @@
.SH EINSCHRNKUNGEN
Das Dateiformat ist maschinengebunden. Es wird daher empfohlen, da
es nur auf der Architektur verarbeitet wird, auf der es erstellt wurde.
+.SH FEHLER
+Ein Groteil der obigen Beschreibung basiert auf der libc5. Aktuelle
+Versionen knnten inzwischen ein anderes Verfahren verwenden.
.SH "SIEHE AUCH"
.BR ac (1),
.BR date (1),
@@ -238,5 +263,6 @@
.BR login (1),
.BR who (1),
.BR getutent (3),
+.BR updwtmp (3),
.BR init (8).
|