Re: [RFR] man://manpages-de/utmp.5
Hallo Martin,
Martin Eberhard Schauer:
Dieser Brocken ist etwas dicker
... mit Leerzeichen angereichert.
#. type: Plain text
msgid "utmp, wtmp - login records"
msgstr "utmp, wtmp - Login-Datensätze"
Anmeldedatensätze?
#. type: Plain text
msgid ""
"The I<utmp> file allows one to discover information about who is
currently "
"using the system. There may be more users currently using the system, "
"because not all programs use utmp logging."
msgstr ""
"Die Datei I<utmp> gibt Auskunft darüber, wer das System im Moment
benutzt. "
"Da nicht alle Programme I<utmp> benutzen, kann es jedoch noch mehr "
"Systembenutzer geben."
Leerzeichen hinter Systembenutzer zuviel
#. type: Plain text
msgid ""
"B<Warning:> I<utmp> must not be writable by the user class \"other\", "
"because many system programs (foolishly) depend on its integrity. You "
"risk faked system logfiles and modifications of system files if you leave "
"I<utmp> writable to any user other than the owner and group owner of the "
"file."
msgstr ""
"B<Warnung>: I<utmp> darf nicht von der Benutzerklasse »other« schreibbar "
"sein, weil viele Systemprogramme (törichterweise) von der Integrität
dieser "
"Datei abhängig sind. Falls Sie I<utmp> für irgendwelche anderen Benutzer "
"als Besitzer und Gruppe schreibbar lassen, riskieren Sie falsche
Einträge "
"in System-Protokolldateien und Modifikationen von Systemdateien."
Leerzeichen vor schreibbar zuviel
s/System-Protokolldateien/Systemprotokolldateien/
s/Modifikationen/Änderungen/
# FIXME: bold in source code
#. type: Plain text
#, no-wrap
msgid ""
"#define EMPTY 0 /* Record does not contain valid info\n"
" (formerly known as UT_UNKNOWN on Linux) */\n"
"#define RUN_LVL 1 /* Change in system run-level (see\n"
" B<init>(8)) */\n"
"#define BOOT_TIME 2 /* Time of system boot (in I<ut_tv>) */\n"
"#define NEW_TIME 3 /* Time after system clock change\n"
" (in I<ut_tv>) */\n"
"#define OLD_TIME 4 /* Time before system clock change\n"
" (in I<ut_tv>) */\n"
"#define INIT_PROCESS 5 /* Process spawned by B<init>(8) */\n"
"#define LOGIN_PROCESS 6 /* Session leader process for user login */\n"
"#define USER_PROCESS 7 /* Normal process */\n"
"#define DEAD_PROCESS 8 /* Terminated process */\n"
"#define ACCOUNTING 9 /* Not implemented */\n"
msgstr ""
"#define EMPTY 0 /* Datensatz enthält keine gültigen Infor-\n"
" mationen (früher unter Linux als\n"
Warum trennst Du Informationen? Du hast 80 Zeichen zur Verfügung. Auch
im Folgenden bitte prüfen.
" UT_UNKNOWN bekannt) */\n"
"#define RUN_LVL 1 /* Wechsel des System-Runlevels (siehe\n"
" B<init>(8)) */\n"
"#define BOOT_TIME 2 /* Zeitpunkt des Systemstarts (in I<ut_tv>) */\n"
"#define NEW_TIME 3 /* Zeitdauer nach Änderung der Systemuhr\n"
s/Zeitdauer/Zeit/ (auch folgende)
" (in I<ut_tv>) */\n"
"#define OLD_TIME 4 /* Zeitdauer vor Änderung der Systemuhr\n"
" (in I<ut_tv>) */\n"
"#define INIT_PROCESS 5 /* Prozess von B<init>(8) erzeugt */\n"
"#define LOGIN_PROCESS 6 /* Prozessgruppen-Führer für\n"
"\" Benutzer-Anmeldung */\n"
"#define USER_PROCESS 7 /* normaler Prozess */\n"
"#define DEAD_PROCESS 8 /* beendeter Prozess */\n"
"#define ACCOUNTING 9 /* nicht implementiert */\n"
#. type: Plain text
#, no-wrap
msgid ""
"struct exit_status { /* Type for ut_exit, below */\n"
" short int e_termination; /* Process termination status */\n"
" short int e_exit; /* Process exit status */\n"
"};\n"
msgstr ""
"struct exit_status { /* nachfolgden der Typ für ut_exit */\n"
" short int e_termination; /* Abschluss-Status des Prozesses */\n"
" short int e_exit; /* Rückgabestatus des Prozesses */\n"
"};\n"
s/nachfolgden/nachfolgend/
s/Rückgabestatus/Exit-Status/ (Wortliste)
"struct utmp {\n"
" short ut_type; /* Typ des Datensatzes */\n"
" pid_t ut_pid; /* Prozess-ID des\n"
" Login-Prozesses */\n"
Anmeldeprozesses
" char ut_line[UT_LINESIZE]; /* Gerätename des Terminals\n"
" - \"/dev/\" */\n"
" char ut_id[4]; /* Suffix des Terminalnamens,\n"
" oder inittab(5)-ID */\n"
" char ut_user[UT_NAMESIZE]; /* Benutzername */\n"
" char ut_host[UT_HOSTSIZE]; /* Rechnername für entferntes\n"
" Login oder Kernel-Version für\n"
" Runlevel-Nachrichten */\n"
s/entferntes Login/Anmeldung auf fernem System/
#. type: Plain text
#, no-wrap
msgid ""
" int32_t ut_addr_v6[4]; /* Internet address of remote\n"
" host; IPv4 address uses\n"
" just ut_addr_v6[0] */\n"
" char __unused[20]; /* Reserved for future use */\n"
"};\n"
msgstr ""
" int32_t ut_addr_v6[4]; /* Internet-Adresse des entfernten\n"
" Rechners, IPv4-Adressen nutzen\n"
" nur ut_addr_v6[0] */\n"
" char __unused[20]; /* für zukünftige Nutzung reserviert */\n"
"};\n"
des fernen Rechners - entfernt könnte missverstanden werden.
#. type: Plain text
#, no-wrap
msgid ""
"/* Backward compatibility hacks */\n"
"#define ut_name ut_user\n"
"#ifndef _NO_UT_TIME\n"
"#define ut_time ut_tv.tv_sec\n"
"#endif\n"
"#define ut_xtime ut_tv.tv_sec\n"
"#define ut_addr ut_addr_v6[0]\n"
msgstr ""
"/* Vorkehrungen für Rückwärtskompatibilität */\n"
"\n"
Woher kommt dieser Umbruch?
"#define ut_name ut_user\n"
"#ifndef _NO_UT_TIME\n"
"#define ut_time ut_tv.tv_sec\n"
"#endif\n"
"#define ut_xtime ut_tv.tv_sec\n"
"#define ut_addr ut_addr_v6[0]\n"
#. type: Plain text
msgid ""
"This structure gives the name of the special file associated with the "
"user's terminal, the user's login name, and the time of login in the form "
"of B<time>(2). String fields are terminated by a null byte (\\(aq"
"\\e0\\(aq) if they are shorter than the size of the field."
msgstr ""
"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 "
"B<time>(2). Zeichenketten werden mit einem Null-Byte (\\(aq\\e0\\(aq) "
"terminiert, wenn sie kürzer als das Feld sind."
s/terminiert/beendet/
# Umformulieren (ist länglich).
#. type: Plain text
msgid ""
"The first entries ever created result from B<init>(8) processing
B<inittab>"
"(5). Before an entry is processed, though, B<init>(8) cleans up utmp by "
"setting I<ut_type> to B<DEAD_PROCESS>, clearing I<ut_user>, I<ut_host>,
and "
"I<ut_time> with null bytes for each record which I<ut_type> is not "
"B<DEAD_PROCESS> or B<RUN_LVL> and where no process with PID I<ut_pid> "
"exists. If no empty record with the needed I<ut_id> can be found, B<init>"
"(8) creates a new one. It sets I<ut_id> from the inittab, I<ut_pid> and "
"I<ut_time> to the current values, and I<ut_type> to B<INIT_PROCESS>."
msgstr ""
"Die ersten Einträge erstellt B<init>(8) bei der Verarbeitung von
B<inittab>"
"(5). Bevor ein solcher Eintrag verarbeitet wird, räumt B<init>(8)
I<utmp> "
"auf, indem bei jedem Eintrag, dessen B<ut_type> nicht B<DEAD_PROCESS>
oder "
"B<RUN_LVL> ist und für den kein Prozess mit der PID B<ut_pid> existiert, "
"B<ut_type> auf B<DEAD_PROCESS> gesetzt wird und B<ut_user>, B<ut_host>
und "
"B<ut_time> mit Null-Bytes gefüllt werden. Falls kein leerer Datensatz
mit "
"der benötigten B<ut_id> gefunden wird, erstellt B<init>(8) einen neuen. "
"Dabei wird B<ut_id> von der inittab übernommen, B<ut_pid> und B<ut_time> "
"werden auf die aktuellen Werte und B<ut_type> auf B<INIT_PROCESS> gesetzt."
Leerzeichen vor Bevor, I<utmp> und Falls zuviel
Inittab groß
#. type: Plain text
msgid ""
"B<mingetty>(8) (or B<agetty>(8)) locates the entry by the PID, changes "
"I<ut_type> to B<LOGIN_PROCESS>, changes I<ut_time>, sets I<ut_line>, and "
"waits for connection to be established. B<login>(1), after a user has
been "
"authenticated, changes I<ut_type> to B<USER_PROCESS>, changes I<ut_time>, "
"and sets I<ut_host> and I<ut_addr>. Depending on B<mingetty>(8) (or "
"B<agetty>(8)) and B<login>(1), records may be located by I<ut_line> "
"instead of the preferable I<ut_pid>."
msgstr ""
"B<mingetty>(8) (oder B<agetty>(8)) findet den Eintrag mittels der PID, "
"ändert I<ut_type> zu B<LOGIN_PROCESS>, ändert I<ut_time>, setzt
I<ut_line> "
"und wartet darauf, dass eine Verbindung hergestellt wird. Nachdem
B<login>"
"(1) einen Benutzer authentifizieren konnte, ändert es I<ut_type> zu "
"B<USER_PROCESS>, ändert I<ut_time> und setzt I<ut_host> sowie
B<ut_addr>. "
"Abhängig von B<mingetty>(8) (oder B<agetty>(8)) und B<login>(1) könnten "
"Datensätze auch mittels B<ut_line> anstatt der vorzuziehenden B<ut_pid> "
"gefunden werden."
Leerzeichen vor (oder, findet, Nachdem, einen und (oder zuviel
#. type: Plain text
msgid ""
"When B<init>(8) finds that a process has exited, it locates its utmp
entry "
"by I<ut_pid>, sets I<ut_type> to B<DEAD_PROCESS>, and clears I<ut_user>, "
"I<ut_host> and I<ut_time> with null bytes."
msgstr ""
"Wenn B<init>(8) feststellt, dass ein Prozess beendet wurde, bestimmt es "
"den entsprechenden Eintrag in utmp mittels I<ut_pid>, setzt I<ut_type>
auf "
"B<DEAD_PROCESS> und füllt I<ut_user>, I<ut_host> sowie I<ut_time> mit
Null-"
"Bytes."
Leerzeichen vor feststellt zuviel
#. type: Plain text
msgid ""
"B<xterm>(1) and other terminal emulators directly create a
B<USER_PROCESS> "
"record and generate the I<ut_id> by using the string that suffix part of "
"the terminal name (the characters following I</dev/[pt]ty>). If they
find "
"a B<DEAD_PROCESS> for this ID, they recycle it, otherwise they create a
new "
"entry. If they can, they will mark it as B<DEAD_PROCESS> on exiting
and it "
"is advised that they null I<ut_line>, I<ut_time>, I<ut_user>, and "
"I<ut_host> as well."
msgstr ""
"B<xterm>(1) und andere Terminal-Emulatoren erstellen direkt einen "
"B<USER_PROCESS>-Datensatz und erzeugen die I<ut_id> durch den Suffix des "
"Terminalnamens (die Zeichen, die auf I</dev/[pt]ty> folgen). Falls sie "
"einen B<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 B<DEAD_PROCESS> und es wird "
"geraten, dass sie I<ut_line>, I<ut_time>, I<ut_user> und I<ut_host> "
"ebenfalls mit Nullen füllen."
Leerzeichen vor und und Falls zuviel
sie groß
#. type: Plain text
msgid ""
"B<telnetd>(8) sets up a B<LOGIN_PROCESS> entry and leaves the rest to "
"B<login>(1) as usual. After the telnet session ends, B<telnetd>(8) "
"cleans up utmp in the described way."
msgstr ""
"B<telnetd>(8) erzeugt einen B<LOGIN_PROCESS>-Datensatz und lässt B<login>"
"(1) den Rest erledigen. Nachdem die telnet-Sitzung beendet ist, räumt "
"B<telnetd>(8) I<utmp> in der oben beschriebenen Art und Weise auf."
Leerzeichen vor erzeugt, den und Nachdem zuviel
Telnet-Sitzung groß
#. type: Plain text
msgid ""
"The I<wtmp> file records all logins and logouts. Its format is exactly "
"like I<utmp> except that a null username indicates a logout on the "
"associated terminal. Furthermore, the terminal name B<~> with username "
"B<shutdown> or B<reboot> indicates a system shutdown or reboot and the
pair "
"of terminal names B<|>/B<}> logs the old/new system time when B<date>(1) "
"changes it. I<wtmp> is maintained by B<login>(1), B<init>(8), and some "
"versions of B<getty>(8) (e.g., B<mingetty>(8) or B<agetty>(8)). None
of "
"these programs creates the file, so if it is removed, record-keeping is "
"turned off."
msgstr ""
"Die Datei I<wtmp> zeichnet alle An- und Abmeldungen im System auf. Das "
"Format gleicht B<utmp>, mit der Ausnahme, dass ein leerer Benutzername
eine "
"Abmeldung vom zugehörigen Terminal anzeigt. Weiterhin bedeutet der "
"Terminalname B<~> mit den Benutzernamen B<shutdown> oder B<reboot> ein "
"Herunterfahren bzw. den Neustart des Systems. Außerdem protokolliert das "
"Paar von Terminalnamen B<|>/B<}> die alte/neue Systemzeit, wenn diese "
"durch B<date>(1) geändert wird. I<wtmp> wird durch B<login>(1), B<init>"
"(8) und B<getty>(1) (z.B. B<mingetty>(8) oder B<agetty>(8))
verwaltet. "
"Keines dieser Programme erstellt die Datei. Somit wird durch Löschen der "
"Datei die Datenhaltung deaktiviert."
Leerzeichen vor Das, Weiterhin, den, die, I<wtmp, und, (z.B,oder und
Somit zuviel
Datenhaltung? Vielleicht Aufheben/Aufbewahren der Datensätze
#. type: Plain text
msgid ""
"POSIX.1 does not specify a I<utmp> structure, but rather one named "
"I<utmpx>, with specifications for the fields I<ut_type>, I<ut_pid>, "
"I<ut_line>, I<ut_id>, I<ut_user>, and I<ut_tv>. POSIX.1 does not specify "
"the lengths of the I<ut_line> and I<ut_user> fields."
msgstr ""
"POSIX.1 definiert keine I<utmp>-Struktur, sondern eine namens I<utmpx>
mit "
"den Spezifikationen der Felder I<ut_type>, I<ut_pid>, I<ut_line>,
I<ut_id>, "
"I<ut_user> und I<ut_tv>. Die Länge der Felder I<ut_line> and I<ut_user> "
"wird von POSIX.1 nicht spezifiziert."
Leerzeichen vor ut_line zuviel
#. type: Plain text
msgid ""
"v7/BSD has fewer fields; most importantly it lacks I<ut_type>, which
causes "
"native v7/BSD-like programs to display (for example) dead or login "
"entries. Further, there is no configuration file which allocates slots
to "
"sessions. BSD does so because it lacks I<ut_id> fields."
msgstr ""
"v7/BSD hat weniger Felder, vor allem fehlt I<ut_type>, was native v7/BSD-"
"Programme veranlasst, tote und login-Einträge anzuzeigen. Weiterhin gibt "
"es keine Konfigurationsdatei, die jeder Sitzung eine Eintragsnummer "
"zuordnet. Das ist bei BSD der Fall,weil dort das Feld I<ut_id> fehlt. "
Leerzeichen vor Weiterhin zuviel
s/login-Einträge/Anmeldeeinträge/
#. type: Plain text
msgid ""
"In Linux (as in System V), the I<ut_id> field of a record will never
change "
"once it has been set, which reserves that slot without needing a "
"configuration file. Clearing I<ut_id> may result in race conditions "
"leading to corrupted utmp entries and potential security holes. Clearing "
"the abovementioned fields by filling them with null bytes is not required "
"by System V semantics, but makes it possible to run many programs which "
"assume BSD semantics and which do not modify utmp. Linux uses the BSD "
"conventions for line contents, as documented above."
msgstr ""
"In Linux (wie auch in System V) wird das I<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 I<ut_id> führt zu Wettlaufsituationen (race conditions) und "
"resultiert in beschädigten Einträgen in utmp und potenziellen "
"Sicherheitslücken. Die Semantik von System Verfordert nicht, die oben "
"angegebenen Felder mit Null-Bytes zu löschen, aber ermöglicht die Nutzung "
"vieler Programme zu benutzen, die die BSD-Semantik verwenden und utmp
nicht "
"verändern. Wie oben beschrieben, wendet Linux die BSD-Konventionen für "
"Leitungsnamen an."
s/Wettlaufsituationen/Gleichzeitigkeitsbedingungen/
Leerzeichen vor Die und Wie zuviel
s/von System Verfordert/vom System erfordert/
s/ zu benutzen//
#. type: Plain text
msgid ""
"Unlike various other systems, where utmp logging can be disabled by "
"removing the file, utmp must always exist on Linux. If you want to
disable "
"B<who>(1) then do not make utmp world readable."
msgstr ""
"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. When Sie B<who>(1) deaktivieren wollen, darf utmp nicht "
"für alle anderen Systembenutzer (world) lesbar sein."
s/When/Wenn/
Leerzeichen vor deaktivieren zuviel
#. type: Plain text
msgid ""
"The file format is machine-dependent, so it is recommended that it be "
"processed only on the machine architecture where it was created."
msgstr ""
"Das Dateiformat ist maschinenabhängig. Es wird daher empfohlen, dass es "
"nur auf der Architektur verarbeitet wird, auf der es erstellt wurde."
Leerzeichen vor Es zuviel
#. type: Plain text
msgid ""
"Note that on I<biarch> platforms, that is, systems which can run both 32-"
"bit and 64-bit applications (x86-64, ppc64, s390x, etc.), I<ut_tv> is the "
"same size in 32-bit mode as in 64-bit mode. The same goes for "
"I<ut_session> and I<ut_time> if they are present. This allows data files "
"and shared memory to be shared between 32-bit and 64-bit applications. "
"This is achieved by changing the type of I<ut_session> to I<int32_t>, and "
"that of I<ut_tv> to a struct with two I<int32_t> fields I<tv_sec> and "
"I<tv_usec>. Since I<ut_tv> may not be the same as I<struct timeval>,
then "
"instead of the call:"
msgstr ""
"Beachten Sie, dass auf I<biarch>-Architekturen, also Systemen, die sowohl "
"32-Bit- und 64-Bit-Anwendungen ausführen können (x86-64, ppc64, s390x "
"usw.), I<ut_tv> im 32-Bit-Modus und auch im 64-Bit-Modus die gleiche
Größe "
"hat. Das gleiche gilt für I<ut_session> und I<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 I<ut_session> zu I<int32_t> geändert wird und der von "
"I<ut_tv> zu einer »struct« mit zwei I<int32_t>-Feldern ( I<tv_sec> und "
"I<tv_usec>). Da I<ut_tv> womöglich nicht das Gleiche ist wie ein I<struct "
"timeval>, wird anstelle des Aufrufs"
Leerzeichen vor (x86-64 und I<tv_sec> zuviel
#. type: Plain text
msgid ""
"Note that the I<utmp> struct from libc5 has changed in libc6. Because of "
"this, binaries using the old libc5 struct will corrupt I</var/run/utmp>
and/"
"or I</var/log/wtmp>."
msgstr ""
"Beachten Sie, dass das I<utmp>-struct aus Libc5 in Libc6 geändert wurde. "
"Daher werden Programme, die das alte Libc5-struct nutzen,
I</var/run/utmp> "
"und/oder I</var/log/wtmp> korrumpieren."
Struct groß
Sonst habe ich keine überflüssigen Leerzeichen gesehen ;-)
Gruß,
Chris
Reply to: