[linux-l] [Gnome] Fehlermeldung "Die Datei $HOME/.dmrc besitzt ungültige Zugriffsrechte und wird deshalb ignoriert..."

Volker Grabsch vog at notjusthosting.com
Mi Okt 11 11:12:10 CEST 2006


On Mon, Oct 09, 2006 at 05:41:46PM +0200, Detlef Lechner wrote:
> Wenn ich man tty durchlese, dann gibt tty den Dateinamen des mit der 
> Standardeingabe verbundenen Terminals aus (Version vom Mai 2001). Heißt 
> das, daß der Dateiname '0' ist und die Datei '0' sich im Verzeichnis 
> /dev/pts/befindet? Wenn ich mittels gedit im Verzeichnis /dev/pts 
> nachsehe, gibt es dort 4 Dateien, die mit 0, 1, 2 und 3 bezeichnet 
> sind, und nicht insgesamt 7, wie Du behauptest.

Nein, die "pts" beschreiben so eine Art "virtuelle" Konsole. Eine
Kommandozeile muss ja nicht unbedingt im Textmodus laufen, sondern
kann auch im Grafik-Modus laufen, in einem Terminal-Fenster. Aus
historischen Gründen brauchen auf diese eine "Konsole", und diese
zusätzlichen "virtuellen Text-Konsolen" werden dynamisch im Verzeichnis
/dev/pts bereit gestellt. (Mit "dynamisch" meine ich, dass sie bei
Bedarf erzeugt und wieder entfernt werden)

Auch wenn du dich von außen in deinen Rechner einloggst (z.B. per SSH),
wird ebenfalls für diesen Zweck eine "Datei" in /etc/pts "angelegt".

Deine 4 Dateien beziehen sich also auf 4 geöffnete Terminal-Fenster
in deinem Gnome, und haben *nichts* mit den vorhin besprochenen Text-
Konsolen 1-6 zu tun. Diese liegen nicht in /dev/pts, sondern direkt
in /dev, genauer gesagt handelt es sich um:

    /dev/tty1
    /dev/tty2
    /dev/tty3
    /dev/tty4
    /dev/tty5
    /dev/tty6

> >Befindest du dich gerade in einer Text-Konsole,
> 
> Wie komme ich unter Gnome 2.14 in eine Grafik-Konsole?

Gnome *läuft* in einer Grafik-Konsole. Natürlich kann man innerhalb
des Grafik-Modus (egal, ob KDE, Gnome oder sonstwas darin läuft)
wieder ein Terminal starten und in diesem eine Kommandozeile haben.

Das hat mit Textkonsolen aber genau gar nichts zu tun.

> >brauchst du
> >zum Umschalten die Strg-Taste nicht, d.h. es genügt auch ein
> >einfaches "Alt+F1", ..., "Alt+F7".
> 
> Das stimmt nicht. Wenn ich z. B. Alt-F4 drücke, dann komme ich nicht in 
> das 4. oder 5. Terminal, sondern dann wird das aktuelle Terminal 
> geschlossen (wie bei Windows).

Weil du in ner Grafik-Konsole bist. (... in der Gnome läuft, und
Alt+F4, etc. abfängt)

> >(oder anders gesagt: Im Grafik-Modus brauchst du zusätzlich die
> >Strg-Taste)
> 
> Das stimmt auch nicht. Wenn ich Ctrl-Alt-x mit x = 2 bis 6 drücke, dann 
> schaltet der Computer auf den Blockzeichenmodus um.

Du nennst es Blockzeichenmodus, ich nenne es Text-Konsole.

Kann es sein, dass du "Konsole" und "Shell" durcheinander bringst?

> >Auf welcher Konsole was läuft ist aber nicht in Stein gemeißelt,
> >sondern frei konfigurierbar (in der /etc/inittab). Manche
> >Distributionen legen noch auf Konsole 8 eine Grafik-Konsole, oder
> >auf Konsole 12 einige System-Infos. Muss man einfach ausprobieren
> >oder in der /etc/inittab nachlesen.
> 
> Ich habe mir eben den Inhalt von /etc/inittab angesehen.
> Eine wichtiger Abschnitt im Zusammenhang mit dem hier besprochenen 
> Thema fängt mit der Zeile
> 1:2345:respawn:/sbin/getty 38400 tty1
> an. Die Funktion dieser Zeile verstehe ich aber noch nicht.
> Bitte erläutere mir den Inhalt dieser Zeile.

Was denn nun? Willst du nur wissen, was sie macht, oder wie sie
im einzelnen funktioniert?

Ich gehe mal von letzterem aus, denn dass diese Zeile deine Text-Konsole 1
beschreibt, wurde oft genug gesagt und scheint dir als Antwort nicht zu
genügen.

Also ab in die Details, dafür üben wir jetzt gemeinsam RTFM. Manpages zu
lesen ist nicht leicht, daher geleitete ich dich durch den Dschungel.

Gib bei dir

    man inittab

ein. Dann öffnet sich die Manpage, in der inittab erklärt wird. Mit den
Cursor-Tasten kannst du im Text scrollen, mit der "Q"-Taste kannst du
die Anzeige der Mapage beenden. Unter anderem steht dort:

| An entry in the inittab file has the following format:
|
|             id:runlevels:action:process

In deinem konkreten Fall "1:2345:respawn:/sbin/getty 38400 tty1" bedeutet
das also:

    id = 1
    runlevels = 2345
    action = respawn
    process = /sbin/getty 38400 tty1

Dass die id = 1 ist, hat laut Manpage keinen tieferen Grund. Es soll nur
eine eindeutige Nummer sein.

runlevels = 2345 bedeutet laut Manpage, dass diese Zeile in den
Runlevels 2, 3, 4 und 5 gültig ist. Du wirst wahrscheinlich im Runlevel
3 arbeiten, also ist die Zeile bei dir gerade aktiv. (Runlevels wurden
hier bereits an anderer Stelle ausführlich erklärt)

action = respawn ... Das heißt, eine Aktion namens "respawn" wird
eingerichtet. Was bedeutet "respawn"? Da muss in der Manpage ein bisschen
weiter nach unten scrollen:

|       Valid actions for the action field are:
|
|       respawn
|              The process will be restarted whenever it terminates (e.g. getty).

Das heißt, dass das dort Programm wieder gestartet wird, wenn man es
beendet.

process = "/sbin/getty 38400 tty1" ist dann das auszuführende Programm.


Halten wir also fest: Die Zeile

    1:2345:respawn:/sbin/getty 38400 tty1

legt fest, dass ein Programm namens "getty" gestartet werden soll. Es
liegt im Verzeichnis "/sbin" und wird mit zwei Argumenten aufgerufen,
"38400" und "tty1". Aber nur, wenn man sich in einem der Runlevels 2-5
befindet. Dieses Programm soll nicht nur einmal laufen, sondern
automatisch wieder erneut gestartet werden, wenn es sich beendet
hat.

Bleibt also nur noch die Frage, was das Programm "getty" macht. Sehen
wir uns die Manpage an:

    man getty

Dort steht:

|    getty opens a tty port, prompts for a login name and invokes
|    the /bin/login command.

Aha! "getty" öffnet also die Konsole 1 als Text-Konsole ("tty1" bezieht
sich auf /dev/tty1), und führt in dieser Konsole 1 ein Programm aus.
Welches wird das wohl sein? Falls der Programm-Name "login" noch nicht
selbsterklärend genug ist, einfach nachschlagen:

    man login

Dort wird erklärt, dass das Login-Kommando einen normalen Login
darstellt, also Benutzername und Passwort anfragt und danach eine
Shell startet.


Was bedeutet das? Es bedeutet dass deine obige Zeile eine Text-Konsole
einrichtet, die mit Strg+Alt+F1 erreichbar ist (das legt "tty1" fest).
In dieser Text-Konsole kannst du dich einloggen, irgendwelche Befehle
ausführen, und dich mit "exit" wieder ausloggen. Danach ist das ganze
Ding beendet. Normalerweise könntest du an Konsole 1 danach nichts mehr
machen. *Aber* es wurde ja die Aktion "respawn" festgelegt, das heißt,
unser "/usr/sbin/getty ..." wird wieder gestartet. So kommt der Effekt
zustande, dass man sich nach einem "exit" auf einer Text-Konsole wieder
erneut einloggen darf.

Jetzt solltest du auch die Konsole 2 (Strg+Alt+F2), verstehen, die in
folgender Zeile beschrieben ist:

    2:23:respawn:/sbin/getty 38400 tty2

Was fällt auf? Nun, zunächst das tty2, aber das ist klar, es geht
ja jetzt um die zweite Konsole. Außerdem fällt auf, dass diese
Konsole nur in den Runleveln 2 und 3 aktiv ist. Das heißt, im
Runlevel 4 oder 5 ist nur die Konsole 1, nicht aber die Konsole 2
aktiv. Die weiteren Zeilen:

    3:23:respawn:/sbin/getty 38400 tty3
    4:23:respawn:/sbin/getty 38400 tty4
    5:23:respawn:/sbin/getty 38400 tty5
    6:23:respawn:/sbin/getty 38400 tty6

beschreiben entsprechend, wie es um die Konsolen 3 - 6 bestellt ist.

Was ist mit der Konsole 7? Die wird an dieser Stelle nicht beschrieben.
Einen Grafikmodus aufzusetzen ist etwas schwieriger, daher passt der
ganze Vorgang nicht mehr in eine Zeile, wie es bei "/sbin/getty 38400 tty1"
der Fall war. Das ist, wie viele andere Dinge auch, "ausgelagert" in das
/etc/init.d/ - Verzeichnis.


Für einen normalen Anwender reicht es, zu wissen, dass diese Zeile

    1:2345:respawn:/sbin/getty 38400 tty1

festlegt, dass auf Konsole 1 ein Text-Login vorliegt. Aber du wolltest es
ja unbedingt genau wissen. :-)

Was ebenfalls auffallen sollte, ist, dass man nicht nur einen Login,
sondern ein beliebiges anderes Programm hinter eine Konsole packen kann.
Zum Beispiel eine Status-Anzeige oder ähnliches. Das wird übrigens auch
sehr gern gemacht. Außerdem funktioniert es auch mit sog. seriellen
Konsolen, aber das würde hier zu weit führen. Man sieht, dass das
gesamte System sehr flexibel ist und man die verschiedenen Komponenten
(Login-Programm, Text-Konsole, etc.) beliebig zusammenstecken kann.


Die einen wollen wissen, ob die "X"-Taste auf dem Taschenrechner
multipliziert. Andere haben den Zwang, so lange "Warum?", "Warum?" zu
fragen, bis man unten bei den Schaltkreisen und der Gatterlogik angelangt
ist. ;-)


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l