at.linux-FAQ

Bereit zur Arbeit



X-Session über ssh starten?

Mit entsprechend konfiguriertem ssh ist es sehr einfach, übers Netz eine X-Session auf einem anderen Rechner zu starten. Die relevanten Einstellungen sind:

Wenn X-Forwarding funktioniert, braucht man sich nur aus einem xterm oder ähnlichem mit ssh einloggen und hat automatisch ein korrekt gesetztes DISPLAY. Das nächste X-Programm, dass man auf dem entfernten Rechner startet, schickt die Ausgabe dann zum X-Server auf dem Ausgangsrechner. Das X-Protokoll läuft dabei verschlüsselt über die ssh-Verbindung. Dies hat drei Vorteile:

X-Session über telnet starten?

Der klassische Weg übers Netz eine X-Session zu starten:

  1. Irgendwie auf dem entfernten Rechner einloggen (telnet, rexec, rsh, cronjob, CGI-Script)

  2. Umgebungsvariable DISPLAY korrekt setzen. Im einfachsten Fall:

    export DISPLAY=rechner.mit.dem.x.server:0
  3. Die Zugriffskontrolle des X-Servers einstellen. Im einfachsten Fall:

    xhost +entfernter.rechner.mit.dem.program

Zugriffskontrolle anhand von IP-Adressen ist zum einen relativ leicht zu umgehen. Zum anderen schaltet man damit ohne Unterschied alle Benutzer eines Rechners frei. Und dann geht sowohl telnet als auch X11 unverschlüsselt übers Netz.

Zugriffskontrolle eines X-Servers mit xauth

In der Datei $HOME/.Xauthority des Benutzers, der den X-Server gestartet hat, finden sich mehrere »MIT-MAGIC-COOKIE«. Kann ein X-Client ein passendes Cookie vorweisen, erhält er Zugriff. Zur Übergabe gibt es zwei Möglichkeiten:

X-Session über su starten?

Dieser Fall lässt sich grundsätzlich mit den oben angeführten Mechanismen lösen. Es gibt aber drei komfortable Sonderfälle.

Mehrere X-Server auf dem selben Rechner?

Can I have multiple sessions of X running at the same time?

http://www.fisica.uson.mx/carlos/Linux/Docs/lnag/Linux_Xwindows.htm#multiple_X_Sessions

Can my sister have second GUI login prompt so she does not have to kill my X-session to start hers?

http://www.fisica.uson.mx/carlos/Linux/Docs/lnag/Linux_Xwindows.htm#2nd_GUI_login_prompt

Running Multiple Sessions of X

http://www.3street.org/Linux/linux-X-multiple.html

Creating Multiple GDM Logins on a Single Workstation

http://www.justlinux.com/nhf/X_Window/Creating_Multiple_GDM_Logins_on_a_Single_Workstation.html

Was ist so gefährlich an ».« oder »::« im PATH?

Wenn in einem Verzeichnis mehrere Leute Schreibrechte haben, wie zum Beispiel in /tmp/, lassen sich so trojanische Pferde unterjubeln. Das mag auf einem Einzelplatzrechner weit hergeholt klingen, aber schlechte Angewohnheiten wird man nur schwer wieder los. Der richtige Weg ein Programm im aktuellen Verzeichnis aufzurufen, sieht so aus:

./program

Ausführliche Beschreibung: http://www.lrz-muenchen.de/services/security/path/

Wie kann ich Umgebungsvariablen definieren?

bash und moderne ksh
export VARIABLE=Wert
Die ältere (und kompatible) Syntax
VARIABLE=Wert
export VARIABLE
Und dann gibt es noch csh und tcsh
setenv VARIABLE Wert

Welche Shell man verwendet, sagt einem echo $SHELL oder echo $BASH_VERSION.

Wie kann ich mit einem Skript die Umgebungsvariablen der laufenden Shell ändern?

Wenn man ein Shell-Skripts auf die übliche Art startet, wird dazu ein eigener Prozess erzeugt. Umgebungsvariablen werden dabei vom Elternprozess an den Kindprozess vererbt (man kann das mit env auch verhindern). Es gibt aber keine Möglichkeit in der Umkehrrichtung Variablen zu setzen.

Um durch ein Skript Umgebungsvariablen einer laufenden Shell zu ändern, muss man es statt dessen »ein-sourcen«:

source Datei

oder

. Datei

Kopieren und Einfügen (Zwischenablage unter X11)?

X11 kennt zwei Arten der Zwischenablage.

Primary Selection

Kopiert wird durch Auswählen mit der linken Maustaste. Doppelklick markiert wortweise, Dreifach-Klick zeilenweise. Man kann stattdessen auch einfach mit gedrückter Maustaste über die Auswahl ziehen.

Eingefügt wird durch Drücken der mittleren Maustaste (bei einer Zweitastenmaus durch gleichzeitiges Drücken linker und rechte Maustaste).

Einige Textmodus-Programme (vim, links, mc) beherrschen unter X11 (also innerhalb eines xterm oder ähnlichem) eine eigene Maussteuerung. Ein Klick mit der linken Maustaste versetzt dann etwa den Cursor oder springt einen Hyperlink an. Die Funktionalität der Primary Selection erreicht man in dem Fall durch Festhalten der Hochstelltaste (englische Beschriftung ist Shift) während des Mausklicks.

Clipboard Selection

Kopiert wird in zwei Schritten:

  1. Auswahl der zu kopierenden Daten mit Maus oder Tastatur.

  2. Auslösen des Kopierkommandos, durch den Menüpunkt Bearbeiten → Kopieren, oder der Tastenkombination Strg+C.

Eingefügt wird mit Bearbeiten → Einfügen, oder der Tastenkombination Strg+V.

Die englischen Bezeichnungen sind Edit → Copy bzw. Edit → Paste und Ctrl statt Strg. Antike Software (etwa Netscape 4.x) verwendet statt dessen auch Alt.

http://linux.about.com/library/bl/open/newbie/blnewbie4.3.10.htm
http://www.faqs.org/docs/lnag/lnag_xwindows.html#copy_paste
http://www.jguru.com/faq/view.jsp?EID=569572

Screenshots in X11, KDE, Gnome?

Screenshots im Framebuffer?

Es ist zwar möglich, /dev/fb0 direkt auszulesen, aber von den vielen Speicherformaten werden nur die wenigsten von ImageMagick unterstützt. Ohne ein spezielles Konversionsprogramm geht es im allgemeinen nicht.

http://hem.bredband.net/gmogmo/fbgrab/
http://www.sfires.net/fbshot/

Screenshots im Textmodus?

»gpm means general purpose mouse and is the mouse support for linux in the console.«

Damit kann man im reinen Textmodus die Maus zum Selektieren und Kopieren von Text verwenden.

http://linux.schottelius.org/gpm/

/dev/vcs1

Der Inhalt virtueller Konsolen kann auch direkt ausgelesen werden.

»Takes snapshot from your Linux console(s) and outputs a Targa file.«

http://bisqwit.iki.fi/source/snapscreenshot.html

»Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.«

Mit der Tastenkombination »C-a H« wird das Logging eingeschaltet, dabei werden auch sämtliche Terminalsteuerzeichen aufgezeichnet. Diese lassen sich mit colcrt rausfiltern.

http://www.gnu.org/software/screen/