login(1) login(1)
NAME
login - Sich neu am System anmelden
SYNTAX
login [benutzerkennung [umgebung ...]]
BESCHREIBUNG
In der Korn-Shell ist login ein eingebautes Shell-Kommando, in der
Bourne-Shell wird /usr/bin/login aufgerufen.
login kann sowohl vom Anwender als auch vom System aufgerufen werden:
- Wenn Sie sich neu am System anmelden, wird das Kommando login vom
System aufgerufen.
- Wollen Sie login in der Bourne-Shell als Kommando aufrufen, dann
muß die aktuelle Login-Shell damit überlagert werden. Sie müssen
deshalb das Kommando mit exec login aus der Login-Shell aufrufen.
Die aktuelle Shell ist beendet, wenn login gestartet wird. Es ent-
steht kein neuer Prozeß; das erkennen Sie daran, daß sich die Pro-
zeßnummer nicht ändert.
login führt folgendes aus:
- Es fragt das Kennwort der angegebenen Benutzerkennung ab.
- Es macht das HOME-Verzeichnis zum aktuellen Verzeichnis. Der Varia-
blen HOME hat login den Namen des Login-Verzeichnisses zugewiesen,
das für die angegebene Benutzerkennung in /etc/passwd eingetragen
ist.
- Es initialisiert die Standard-Shell-Variablen mit dem entsprechen-
den Standardwert (siehe Arbeitsweise des Kommandos login).
- Es überlagert sich mit dem Programm, das für diese Benutzerkennung
in der Datei /etc/passwd festgelegt ist. Ist für die angegebene
Benutzerkennung in der Datei /etc/passwd als Startprogramm
/usr/bin/sh eingetragen, so überlagert sich login mit einer neuen
Login-Shell. Diese Shell erledigt folgendes:
- Sie führt die Datei /etc/profile aus.
- Sie führt die Datei $HOME/.profile aus, falls Sie diese Datei ange-
legt haben.
Deshalb gilt ab jetzt die Shell-Umgebung, die für diese Benutzerken-
nung definiert ist. Wenn Sie Ihre aktuelle Shell-Umgebung und Ihr
aktuelles Verzeichnis beibehalten, aber trotzdem Ihre Benutzerkennung
wechseln wollen, verwenden Sie statt login das Kommando su(1).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
Ist in der Datei /etc/default/login die Zeile CONSOLE=Gerätename eines
Terminals definiert, so können Sie sich als root nur an dem Terminal
anmelden, das als Konsole definiert ist.
Vor dem Aufruf beachten
Damit Sie sich am System anmelden können, muß die angegebene Benutzer-
kennung in der Datei /etc/passwd eingetragen sein. Ist dies nicht der
Fall, wenden Sie sich an den Systemverwalter.
Bestehen die Angaben für login ausschließlich aus Großbuchstaben, dann
geht login davon aus, daß das angesprochene Terminal nur Großbuchsta-
ben verarbeitet.
benutzerkennung
Benutzerkennung, unter der Sie sich neu am System anmelden wol-
len. Diese Benutzerkennung muß in der Datei /etc/passwd eingetra-
gen sein.
benutzerkennung nicht angegeben:
Das Kommando login fordert die Benutzerkennung in der nächsten
Zeile an.
Ist in der Datei /etc/shadow ein Kennwort für diese Benutzerken-
nung vereinbart, fordert login Sie anschließend auf, das Kennwort
einzugeben.
Ihre Eingabe wird am Bildschirm nicht angezeigt und wird auch in
keiner Datei mitprotokolliert.
umgebung
Wertzuweisung an eine Umgebungsvariable, die Sie entweder in der
Form yyy oder xxx=yyy angeben. Die Wertzuweisung können Sie zur
Ausführungszeit oder bei der Eingabe Ihrer Benutzerkennung einge-
ben. xxx ist der Name einer Umgebungsvariablen. yyy ist ein Wert,
der einer Umgebungsvariablen zugewiesen werden soll. Mit dem
Gegenschrägstrich entwerten Sie einzelne Zeichen innerhalb von
yyy, wie z. B. Leer- oder Tabulatorzeichen.
xxx=yyy Die Umgebungsvariable xxx erhält den Wert yyy. Ältere
Werte von bereits gesetzten Umgebungsvariablen werden
überschrieben, mit zwei Ausnahmen: PATH und SHELL können
auf diese Weise nicht verändert werden.
yyy Die Umgebungsvariable Lnummer erhält den Wert yyy.
nummer beginnt bei 0 und wird weitergezählt, solange
noch Werte yyy vorhanden sind.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
Arbeitsweise des Kommandos login
Das Kommando login vergleicht die angegebene Benutzerkennung und das
angegebene Kennwort mit den entsprechenden Einträgen in den Dateien
/etc/passwd und /etc/shadow. Wenn alle Angaben korrekt sind, werden
Sie unter dieser Benutzerkennung am System angemeldet.
Sind die Angaben nicht korrekt, wird nach fünf mißlungenen Anmeldever-
suchen die Leitung zum Terminal unterbrochen. Ebenso wird verfahren,
wenn Sie sich nicht innerhalb einer bestimmten Zeit erfolgreich ange-
meldet haben.
Beim Anmelden am System führt login der Reihe nach die folgenden Auf-
gaben aus:
- login sucht zur angegebenen Benutzerkennung die Benutzernummer
(UID) und die Gruppennummer (GID) in der Datei /etc/passwd.
Das Betriebssystem verwaltet die Benutzerkennungen intern nur unter
ihrer Benutzer- und Gruppennummer.
- login trägt die Benutzerkennung in die Datei /var/adm/utmp ein.
Diese Datei enthält Informationen über alle Benutzer, die aktuell
am System angemeldet sind.
Auf diese Datei greift das Kommando who(1) zu.
- login trägt die Benutzerkennung in die Datei /var/adm/wtmp ein.
Wenn diese Datei existiert, werden dort alle An- und Abmeldungen
fortlaufend protokolliert.
- login gibt aus, wann Sie sich unter dieser Benutzerkennung das
letzte Mal angemeldet haben. Diese Information enthält die Datei
/var/adm/lastlog.
- login versorgt die folgenden Umgebungsvariablen mit Standardwerten:
___________________________________________________________________
| Variable | Zuweisung: |
|__________|_______________________________________________________|
| HOME | Name des Login-Verzeichnisses (aus /etc/passwd) |
|__________|_______________________________________________________|
| LOGNAME | Login-Benutzerkennung (aus /etc/passwd) |
|__________|_______________________________________________________|
| MAIL | /var/mail/benutzerkennung |
|__________|_______________________________________________________|
| SHELL | /usr/bin/sh (aus /etc/passwd) |
|__________|_______________________________________________________|
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
___________________________________________________________________
| Variable | Zuweisung: |
|__________|_______________________________________________________|
| TZ | definierte Zeitzone (aus /etc/default/login bzw. |
| | /etc/TIMEZONE) |
|__________|_______________________________________________________|
| PATH | definierter Suchpfad (aus /etc/default/login) |
|__________|_______________________________________________________|
| LANG | NLS-Variable zur Definition einer internationalisier-|
| | ten Umgebung |
|__________|_______________________________________________________|
| TTY | Nummer des Terminals |
|__________|_______________________________________________________|
| TERM | Typ des Terminals |
|__________|_______________________________________________________|
| USER | Login-Benutzerkennung |
|__________|_______________________________________________________|
Weitere Informationen zu diesen Umgebungsvariablen finden Sie in der
Beschreibung des Kommandos sh(1). Hier erfahren Sie auch, wie Sie
diese Standardwerte ändern und zusätzliche Umgebungsvariablen definie-
ren können.
- login macht das Login-Verzeichnis, das in der Datei /etc/passwd für
diese Benutzerkennung eingetragen ist, zum aktuellen Verzeichnis.
- login startet das Programm, das in der Datei /etc/passwd für diese
Benutzerkennung eingetragen ist. Normalerweise wird /usr/bin/sh als
Login-Shell gestartet [siehe sh(1)]. Diese Shell überlagert login.
Ist der Programmname in /etc/passwd der Eintrag *, dann wird das ange-
gebene Login-Verzeichnis zum Root-Verzeichnis. D. h. bei Dateinamen,
die mit Schrägstrich beginnen, wird von diesem Verzeichnis aus
gesucht. Weiter wird login auf der neuen Root-Struktur erneut ausge-
führt.
Die Arbeit am Terminal beginnen
Nach dem Einschalten des Terminals erscheint die Schreibmarke am Bild-
schirm. Abhängig vom Typ des Terminals fragt der Systemprozeß getty
anschließend oder nach Drücken von CTRL-D nach der Benutzerkennung und
übergibt die Benutzerkennung an login. login fragt dann nach dem zuge-
hörigen Kennwort. (Schlägt das Login fehl, so fragt anschließend login
erneut nach der Benutzerkennung.)
Das gleiche gilt, wenn Sie Ihre letzte Sitzung mit CTRL-D beendet
haben.
Bevor Sie also Ihre Arbeit am Terminal beginnen können, müssen fol-
gende Systemprozesse tätig sein:
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
- /etc/init startet für alle angeschlossenen Terminals den Systempro-
zeß getty. Für jedes Terminals wird also ein neuer Prozeß erzeugt.
- /etc/getty gibt den Begrüßungsbildschirm aus und überlagert sich
nach dem Einlesen der Benutzerkennung mit login.
Wenn Sie sich erfolgreich am System angemeldet haben, überlagert sich
login mit dem in der Datei /etc/passwd eingetragenen Startprogramm.
Das ist in der Regel die Login-Shell /bin/sh. Wenn Sie diese Login-
Shell mit CTRL-D beenden, beenden Sie den aktuellen Prozeß, d. h.
/etc/init startet erneut den Systemprozeß /etc/getty.
FEHLERMELDUNGEN
Login incorrect
Diese Fehlermeldung kann folgende Ursachen haben:
- Sie haben sich bei der Eingabe der Benutzerkennung oder des Kenn-
wortes vertippt.
Das Kommando login fordert erneut Ihre Angaben an.
- Diese Benutzerkennung ist noch nicht eingerichtet.
Wenden Sie sich an den Systemverwalter.
- Das Kennwort hat sich geändert.
Wenden Sie sich an den Systemverwalter.
No shell
Der Eintrag für diese Benutzerkennung in der Datei /etc/passwd ist
fehlerhaft oder Sie haben unter dieser Benutzerkennung kein Ausführ-
recht für die entsprechende Shell.
Wenden Sie sich an den Systemverwalter.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
unable to change directory to ""
Das Login-Verzeichnis für diese Benutzerkennung ist nicht eingerich-
tet.
Wenden Sie sich an den Systemverwalter.
Cannot open password file
Die Datei /etc/passwd ist nicht vorhanden oder kann von login nicht
gelesen werden.
Wenden Sie sich an den Systemverwalter.
No utmp entry. You must execute "exec login" from the lowest level "sh".
login findet seinen Eintrag in der Datei /var/adm/utmp nicht, d. h.
login ist nicht als Login-Prozeß gestartet worden. Rufen Sie
exec login aus der Login-Shell auf.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Die Umgebungsvariable LCTIME bestimmt das Format der Datums-
und Zeitangaben.
LCCTYPE bestimmt die Zeichenklassen und die Zeichenkonvertierung.
Wenn LCMESSAGES, LCTIME oder LCCTYPE nicht oder als leere Zeichen-
kette definiert ist, wird der Wert von LANG als Standardwert für die
jeweils nicht gesetzte oder leere Variable herangezogen. Ist auch LANG
nicht oder als leere Zeichenkette definiert, verhält sich das System
so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
Hat eine der Variablen für die internationale Umgebung einen ungülti-
gen Wert, verhält sich das System so, als wäre keine Variable gesetzt.
Es wird empfohlen, für Kennungen und Kennwörter nur Zeichen aus dem
für portable Dateinamen vereinbarten Zeichensatz (Portable Filename
Character Set) zu verwenden. 8-Bit-Daten sind unter Umständen nicht
portabel zu nichtinternationalisierten Systemen.
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
BEISPIELE
Beispiel 1
Die Benutzerin rosa möchte sich unter der Benutzerkennung harald neu
am System anmelden. Sie arbeitet mit der Bourne-Shell. In der Datei
/home/harald/.profile ist das Bereitzeichen der Shell umdefiniert:
PS1=$USER
$ pwd
/usr/rosa/prog
$ id
uid=104(rosa) gid=12(gruppe12)
$ exec login harald
password:
Es erfolgt nun die verdeckte Eingabe des Kennworts für harald. login
gibt nach einer erfolgreich durchgeführten Anmeldung Informationen
über den Zeitpunkt und das Terminal der letzten Anmeldung aus.
harald: pwd
/home/harald
Beispiel 2
Mit su bleibt beim Wechsel der Benutzerkennung die aktuelle Arbeitsum-
gebung erhalten:
$ pwd
/usr/rosa/prog
$ id
uid=104(rosa) gid=12(gruppe12)
$ su harald
password:
Es erfolgt nun die verdeckte Eingabe des Kennworts für harald.
$ pwd
/usr/rosa/prog
$ echo $USER
rosa
$ id
uid=100(harald) gid=10(other)
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
HINWEISE
login existiert sowohl als externes Kommando (/usr/bin/login) als auch
als eingebautes Shell-Kommando (Built-in) der Korn-Shell ksh(1). Für
die Ausführung von /usr/bin/login erzeugt die Shell einen neuen Pro-
zeß.
Bei der Verwendung von login können sich Abweichungen im Verhalten
ergeben, je nachdem, welches Kommando benutzt wird. Die möglichen
Abweichungen sind nicht eigens beschrieben.
DATEIEN
/etc/motd
Enthält die Login-Nachricht für alle Benutzer.
/etc/nologin
Wenn diese Datei existiert, ist ein Login nur für den Systemver-
walter (root) möglich. Führt ein anderer Benutzer in diesem Fall
ein Login durch, wird der Inhalt der Datei /etc/nologin ausgege-
ben.
/etc/passwd
Enthält alle eingerichteten Benutzerkennungen.
/etc/profile
Wird von jeder Login-Shell ausgeführt. Diese Datei erstellt der
Systemverwalter.
/etc/shadow
Enthält verschlüsselte Paßwörter.
/var/adm/utmp
Enthält Informationen über die Anmeldungen der Benutzer, die
aktuell am System angemeldet sind.
/var/adm/loginlog
Enthält Informationen über mißlungene Login-Versuche.
/var/adm/lastlog
Protokolliert für jede Benutzerkennung den Zeitpunkt und das Ter-
minal der letzten Anmeldung am System.
/var/adm/wtmp
Wenn diese Datei existiert, werden dort alle An- und Abmeldungen
fortlaufend protokolliert.
/var/mail/benutzerkennung
Enthält Post für diese Benutzerkennung.
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98
login(1) login(1)
$HOME/.profile
Shell-Prozedur, die jeder Benutzer in seinem HOME-Verzeichnis
einrichten kann. Sie wird von der Login-Shell nach /etc/profile
ausgeführt.
Achtung:
Die C-Shell wertet $HOME/.profile nicht aus, siehe csh(1).
SIEHE AUCH
exec(1), newgrp(1), sh(1), su(1), defaultpasswd(4), loginlog(4),
passwd(4), profile(4), environ(5).
Seite 9 Reliant UNIX 5.44 Gedruckt 11/98