Befehl "xdm"

Zweck

Verwaltet einen Verbund von X-Anzeigen mit Unterstützung für XDMCP.

Syntax

xdm-konfiguration ConfigurationFile] [  -fehlersuche DebugLevel ] [  -nodaemon ] [  -fehler ErrorLogFile ] [  -ressourcen ResourceFile ] [  -server ServerEntry ] [  -udpPort PortNumber ] [  -sitzung SessionProgram ] [  -xrm ResourceSpecification ]

Beschreibung

Der Befehl xdm (X Display Manager, X-Anzeigemanager) verwaltet einen Verbund von X-Anzeigen, die sich auf dem lokalen Host oder auf fernen Servern befinden können. Das Design des Befehls xdm orientiert sich an den Anforderungen von X-Terminals sowie dem Standard-XDMCP (X Display Manager Control Protocol) des X Consortium. Der Befehl xdm stellt ähnliche Services wie die Befehle init, getty und login auf zeichenorientierten Terminals bereit: Anforderung eines Anmeldenamens und eines Kennworts, Authentifizierung des Benutzers und Ausführung einer Sitzung.

Eine Sitzung wird durch die Laufzeit oder Lebensdauer eines bestimmten Prozesses definiert. In der traditionellen Welt zeichenbasierter Terminals ist dies die Anmeldeshell des Benutzers. Im xdm-Kontext ist es ein beliebiger Sitzungsmanager. Dies ist darauf zurückzuführen, dass der Anmeldeshellprozess eines Benutzers in einer Umgebung mit Fenstertechnik nicht unbedingt eine terminalähnliche Schnittstelle für die Verbindungsherstellung hat. Wenn kein echter Sitzungsmanager verfügbar ist, wird in der Regel ein Fenstermanager oder Terminalemulator als Sitzungsmanager verwendet. Wenn dieser Prozess beendet wird, wird auch die Sitzung des Benutzers beendet.

Bei der Beendigung der Sitzung setzt xdm den X-Server zurück und startet (optional) den gesamten Prozess erneut.

Wenn der Befehl xdm eine indirekte Abfrage über XDMCP empfängt, kann er einen chooser-Prozess zum Durchführen einer XDMCP-Broadcastabfrage (oder einer XDMCP-Abfrage an bestimmte Hosts) für die Anzeige ausführen und ein Menü mit möglichen Hosts anzeigen, die das Management von XDMCP-Anzeigen unterstützen. Dieses Feature ist für X-Terminals hilfreich, die selbst kein Hostmenü anbieten.

Da der Befehl xdm die erste Schnittstelle ist, die Benutzer sehen, ist er einfach zu bedienen und lässt sich ohne großen Aufwand an die Anforderungen einer bestimmte Site anpassen.

Typische Verwendung

Der Befehl xdm wurde für den Einsatz in verschiedenen Umgebungen entwickelt.

Konfigurieren Sie zuerst die xdm-Konfigurationsdatei. Erstellen Sie ein Verzeichnis (normalerweise /usr/lib/X11/xdm), das alle relevanten Dateien enthält. Im Folgenden sehen Sie eine sinnvolle Konfigurationsdatei, die den Namen xdm-config haben könnte:
DisplayManager.servers:       /usr/lib/X11/xdm/Xservers
DisplayManager.errorLogFile:  /usr/lib/X11/xdm/xdm-errors
DisplayManager*resources:     /usr/lib/X11/xdm/Xresources
DisplayManager*startup:       /usr/lib/X11/xdm/Xstartup
DisplayManager*session:       /usr/lib/X11/xdm/Xsession
DisplayManager.pidFile:       /usr/lib/X11/xdm/xdm-pid
DisplayManager._0.authorize:  true
DisplayManager*authorize:     false

Diese Datei enthält Verweise auf andere Dateien. Einige der Ressourcen sind mit einem * (Stern) gekennzeichnet, der die Komponenten voneinander trennt. Diese Ressourcen können für jede Anzeige eindeutig festgelegt werden, indem der Stern (*) durch den Anzeigenamen ersetzt wird. In der Regel ist dies jedoch nicht hilfreich. Eine vollständige Diskussion finden Sie im Abschnitt Ressourcen auf der nächsten Seite.

Die erste Datei, /usr/lib/X11/xdm/Xservers, enthält die Liste der zu verwaltenden Anzeige, die XDMCP nicht verwenden. Die meisten Workstations haben nur eine einzige Anzeige mit der Nummer 0 (null). In diesem Fall sieht die Datei in etwa wie folgt aus:

:0 Local local /usr/bin/X11/X -force

Diese Datei sorgt dafür, dass /usr/bin/X11/X weiterhin auf dieser Anzeige ausgeführt wird und ein fortlaufender Zyklus von Sitzungen verwaltet wird.

Die Datei /usr/lib/X11/xdm/xdm-errors enthält Fehlernachrichten von xdm und alle Ausgaben der Scripts Xsetup, Xstartup, Xsession und Xreset für die Standardfehlerausgabe. Wenn Sie Probleme mit dem Starten des Befehls xdm haben, überprüfen Sie die Datei /usr/lib/X11/xdm/xdm-errors, um festzustellen, ob der Befehl xdm irgendwelche Hinweise auf das Problem gibt.

Der nächste Konfigurationseintrag, /usr/lib/X11/xdm/Xresources, wird mit dem Befehl xrdb als Ressourcendatenbank in die Anzeige geladen. Da das Authentifizierungswidget diese Datenbank vor dem Start liest, enthält es gewöhnlich Parameter für dieses Widget.

Flags

Die folgenden Optionen (mit Ausnahme von -config) geben alle Werte an, die auch in der Konfigurationsdatei als Ressourcen angegeben werden können.

Element Beschreibung
-config ConfigurationFile Benennt die Konfigurationsdatei, die Ressourcen zum Steuern des Verhaltens des Befehls xdm angibt. Standardmäßig wird die Datei /usr/lib/X11/xdm/xdm-config verwendet.
-debug DebugLevel Gibt den numerischen Wert für die Ressource DisplayManager.debugLevel an. Ein Wert ungleich null bewirkt, dass xdm Debuginformationen am Terminal ausgibt, und inaktiviert die Ressource DisplayManager.daemonMode, was die asynchrone Ausführung von xdm verhindert. Diese Debuginformationen sind unter Umständen nicht verständlich. Verwenden Sie für die Interpretation dieser Nachrichten den X11R4-Quellcode für den Befehl xdm.
-nodaemon Gibt "False" als Wert für die Ressource DisplayManager.daemonMode an. Dieser Wert unterdrückt das übliche Dämonverhalten, bei dem der Befehl xdm alle Dateideskriptoren schließt, seine Verbindung zum Steuerterminal trennt und beim Start in den Hintergrund wechselt.
-fehler ErrorLogFile Gibt den Wert für die Ressource DisplayManager.errorLogFile an. Diese Datei enthält sowohl Fehler von xdm als auch alle Nachrichten, die die verschiedenen Scripts und Programme, die während der Sitzung ausgeführt werden, in die Standardfehlerausgabe schreiben.
-resources ResourceFile Gibt den Wert für die Ressource DisplayManager*resources an. Diese Datei wird mit dem Befehl xrdb geladen, um Konfigurationsparameter für das Authentifizierungswidget anzugeben.
-server ServerEntry Gibt den Wert für die Ressource DisplayManager.servers an. Eine Beschreibung dieser Ressource finden Sie im Abschnitt Serverspezifikation .
-udpPort PortNumber Gibt den Wert für die Ressource DisplayManager.requestPort an. Diese Option legt die Nummer des Ports fest, den der Befehl xdm auf XDMCP-Anforderungen hin überwacht. XDMCP verwendet den registrierten gängigen UDP-Port 177. Ändern Sie diese Ressource nur zum Debuggen.
-session SessionProgram Gibt den Wert für die Ressource DisplayManager*session an. Diese Option gibt an, dass das Programm nach der Anmeldung des Benutzers als Sitzung ausgeführt werden soll.
-xrm ResourceSpecification Ermöglicht die Angabe einer beliebigen Ressource, wie es in den meisten X Toolkit-Anwendungen möglich ist.

Ressourcen

In vielen Phasen können die Aktionen von xdm durch die Verwendung der zugehörigen Konfigurationsdatei im X-Ressourcenformat gesteuert werden. Einige Ressourcen ändern das Verhalten von xdm auf allen Anzeigen, während andere das Verhalten nur auf einer einzigen Anzeige ändern. Wenn sich Aktionen auf eine bestimmte Anzeige beziehen, wird der Anzeigename in den Ressourcennamen zwischen "DisplayManager" und dem letzten Segment des Ressourcennamens eingefügt. Angenommen, DisplayManager.expo_0.startup ist der Name der Ressource, die die Startshelldatei für die Anzeige "expo:0" definiert. Da der Ressourcenmanager Doppelpunkte verwendet, um den Namen der Ressource von ihrem Wert zu trennen, und Punkte für die Trennung der einzelnen Ressourcennamenskomponenten, ersetzt der Befehl xdm Punkte und Doppelpunkte durch Unterstreichungszeichen, wenn er den Ressourcennamen generiert.

Element Beschreibung
DisplayManager.servers Gibt entweder den Namen einer Datei mit Servereinträgen (einem pro Zeile) an, wenn der Wert mit einem Schrägstrich beginnt, oder einen einzelnen Servereintrag an. Weitere Informationen finden Sie im Abschnitt Serverspezifikation .
DisplayManager.requestPort Gibt die Nummer des UDP-Ports an, an dem der Befehl xdm auf eingehende XDMCP-Anforderungen wartet. Sofern Sie das System nicht debuggen müssen, übernehmen Sie den Standardwert 177.
DisplayManager.errorLogFile Leitet Fehlernachrichten so um, dass sie in die benannte Datei und nicht in die Konsole geschrieben werden. Diese Datei enthält auch alle Ausgaben, die von den Xsetup-, Xstartup-, Xsession- und Xreset-Dateien an die Standardfehlerausgabe gesendet werden, und damit auch Beschreibungen der in diesen Scripts aufgetretenen Probleme.
DisplayManager.debugLevel Wenn der ganzzahlige Wert dieser Ressource größer als 0 (null) ist, gibt der Befehl xdm sehr viele Debuginformationen aus. Außerdem inaktiviert er den Dämonmodus, in dem die Informationen verworfen werden und Benutzer ohne Rootberechtigung den Befehl xdm ausführen können, was normalerweise nicht hilfreich ist.
DisplayManager.daemonMode Der Befehl xdm versucht, sich selbst als Dämonprozess auszuführen, der keinem Terminal zugeordnet ist. Dies wird erreicht, indem der übergeordnete Prozess aufgespaltet und dann verlassen wird und anschließend die Dateideskriptoren geschlossen werden und das Steuerterminal freigegeben wird. In einigen Umgebungen ist dies nicht erwünscht (insbesondere beim Debugging). Wenn Sie diese Ressource auf "False" setzen, wird das Feature inaktiviert.
DisplayManager.pidFile Die angegebene Datei wird erstellt und enthält eine ASCII-Darstellung der Prozess-ID des xdm-Hauptprozesses. Der Befehl xdm verwendet auch eine Dateisperre für diese Datei, um zu verhindern, dass mehrere Dämonprozesse auf derselben Maschine ausgeführt werden, was zu unvorhersehbaren Ergebnissen führen würde.
DisplayManager.lockPidFile Steuert, ob der Befehl xdm eine Dateisperre verwendet, um zu verhindern, dass mehrere Anzeigemanager gleichzeitig ausgeführt werden.
DisplayManager.authDir Benennt ein Verzeichnis, in dem der Befehl xdm während der Initialisierung der Sitzung Berechtigungsdateien speichert. Standardmäßig wird das Verzeichnis /usr/lib/X11/xdm verwendet.
DisplayManager.autoRescan Ein boolescher Wert, der steuert, ob der Befehl xdm die Konfigurations-, Server-, Zugriffssteuerungs- und Authentifizierungsschlüsseldateien erneut scannt, wenn eine Sitzung beendet wird und sich die Dateien geändert haben. Der Standardwert ist "True". Sie können erzwingen, dass der xdm-Dämon diese Dateien erneut liest, indem Sie ein SIGHUP-Signal an den Hauptprozess senden.
DisplayManager.removeDomainname Wenn der Bildschirmname für XDMCP-Clients ermittelt wird, erstellt der Namensresolver gewöhnlich einen vollständig qualifizierten Hostnamen für das Terminal. Da dies manchmal verwirrend ist, entfernt der Befehl xdm den Domänennamensteil des Hostnamens, wenn dieser dem Domänennamen des lokalen Hosts entspricht und die Variable gesetzt ist. Der Standardwert ist "True".
DisplayManager.keyFile Die XDMCP-Authentifizierung im XDM-AUTHENTICATION-1-Stil erfordert, dass ein privater Schlüssel vom xdm-Dämon und vom Terminal gemeinsam genutzt wird. Diese Ressource gibt die Datei an, die diese Werte enthält. Jeder Eintrag in der Datei setzt sich aus einem Anzeigenamen und dem gemeinsam genutzten Schlüssel zusammen. Standardmäßig unterstützt der Befehl xdm XDM-AUTHENTICATION-1 nicht, weil dieser Authentifizierungsstil die Datenverschlüsselungsmethode DES voraussetzt, die aufgrund von US-Exportbeschränkungen im Allgemeinen nicht verteilbar ist.
DisplayManager.accessFile Um den nicht autorisierten XDMCP-Service zu verhindern und die Weiterleitung von XDMCP IndirectQuery-Anforderungen zuzulassen, enthält diese Datei eine Datenbank mit Hostnamen, die direkt auf diese Maschine zugreifen dürfen oder eine Liste von Hosts, an die Abfragen weitergeleitet werden sollen. Das Format dieser Datei ist im Abschnitt "XDMCP-Zugriffssteuerung" beschrieben.
DisplayManager.exportList Eine durch Leerzeichen getrennte Liste zusätzlicher Umgebungsvariablen, die an die Programme Xsetup, Xstartup, Xsession und Xreset übergeben werden.
DisplayManager.randomFile Eine Datei zur Erstellung einer Kontrollsumme, mit der der Startwert für die Berechtigungsschlüssel generiert wird. Dies sollte eine Datei sein, die sich häufig ändert. Der Standardwert ist /dev/mem.
DisplayManager.choiceTimeout Die Anzahl der Sekunden, die auf eine Antwort der Anzeige gewartet wird, nachdem ein Benutzer einen Host in der Auswahlfunktion ausgewählt hat. Wenn die Anzeige eineXDMCP IndirectQueryInnerhalb dieser Zeit wird die Anforderung an den ausgewählten Host weitergeleitet. Andernfalls wird angenommen, dass es sich um eine neue Sitzung handelt, und die Auswahlfunktion wird erneut angezeigt. Der Standardwert ist 15.
DisplayManager.DISPLAY.resources Gibt den Namen der Datei an, die der Befehl xrdb als Ressourcendatenbank in das Basisfenster von Anzeige 0 des Bildschirms laden soll. Das Anmeldewidget und die Programme Xsetup und chooser verwenden die in dieser Datei festgelegten Ressourcen. Diese Ressourcendatenbank wird unmittelbar vor dem Start der Authentifizierungsprozedur gestartet, damit diese die Darstellung des Anmeldefensters steuern kann. Weitere Informationen finden Sie im Abschnitt Authentifizierungsclient , in dem die verschiedenen Ressourcen beschrieben werden, die in dieser Datei platziert werden können. Für diese Ressource gibt es keinen Standardwert, aber konventionell wird der Name /usr/lib/X11/xdm/Xresources verwendet.
DisplayManager.DISPLAY.chooser Gibt das Programm an, das ausgeführt wird, um ein Hostmenü für indirekte Abfragen anzubieten, die an den speziellen Hostnamen CHOOSERumgeleitet werden. /usr/lib/X11/xdm/chooser ist der Standardwert. Weitere Informationen finden Sie in den Abschnitten XDMCP-Zugriffssteuerung und Auswahlfunktion.
DisplayManager.DISPLAY.xrdb Gibt das Programm an, mit dem die Ressourcen geladen werden. Standardmäßig verwendet der Befehl xdm das Programm /usr/bin/X11/xrdb.
DisplayManager.DISPLAY.cpp Gibt den Namen des C-Vorprozessors an, der vom Befehl xrdb verwendet wird.
DisplayManager.DISPLAY.setup Gibt ein Programm an, das vor der Anzeige des Anmeldefensters (als Root) ausgeführt wird. Diese Ressource kann verwendet werden, um die Darstellung der Anzeige um das Anmeldefenster herum zu ändern oder um andere Fenster zu erstellen (Sie können beispielsweise xconsole hier ausführen). Standardmäßig wird kein Programm ausgeführt. Der konventionelle Name für eine Datei, die hier verwendet wird, ist Xsetup. Siehe den Abschnitt Installationsprogramm.
DisplayManager.DISPLAY.startup Gibt ein Programm an, das nach Abschluss des Authentifizierungsprozesses als Root ausgeführt wird. Standardmäßig wird kein Programm ausgeführt. Der konventionelle Name für eine Datei, die hier verwendet wird, ist Xstartup. Siehe den Abschnitt Startprogramm.
DisplayManager.DISPLAY.session Gibt die auszuführende Sitzung an (bei der Ausführung ohne Rootrechte). Standardmäßig wird /usr/bin/X11/xterm ausgeführt. Gewöhnlich wird das Xsession-Script verwendet. Siehe den Abschnitt Sitzungsprogramm.
DisplayManager.DISPLAY.reset Gibt ein Programm an, das nach dem Ende der Sitzung (als Root) ausgeführt wird. Standardmäßig wird kein Programm ausgeführt. Gewöhnlich wird das Xreset-Script verwendet. Siehe den Abschnitt Programm zurücksetzen.
DisplayManager.DISPLAY.openDelay Steuert das Verhalten des Befehls xdm beim Versuch, unkooperative Server zu öffnen, indem die Länge der Pause (in Sekunden) zwischen aufeinanderfolgenden Versuchen angegeben wird.
DisplayManager.DISPLAY.openRepeat Steuert das Verhalten des Befehls xdm beim Versuch, unkooperative Server zu öffnen, indem die Anzahl der auszuführenden Versuche angegeben wird.
DisplayManager.DISPLAY.openTimeout Steuert das Verhalten des Befehls xdm beim Versuch, unkooperative Server zu öffnen, indem die Anzahl der Sekunden angegeben wird, die gewartet werden soll, während tatsächlich versucht wird, die Verbindung zu öffnen (d. h., die maixmal im Systemaufruf connect(2) verbrachte Zeit).
Element Beschreibung
DisplayManager.DISPLAY.startAttempts Steuert das Verhalten des Befehls xdm beim Versuch, unkooperative Server zu öffnen, indem angegeben wird, wie oft der gesamte Prozess ausgeführt werden soll, bevor die Versuche mit diesem Server eingestellt werden. Nachdem die von der Ressource openRepeat des Anzeigemanagers angegebene Anzahl von Versuchen durchgeführt wurde oder die mit der Ressource openTimeout des Anzeigemanagers angegeben Anzahl von Sekunden bei einem der Versuche abgelaufen ist, wird der Befehl xdm beendet und der Server neu gestartet. Dieser Prozess wird so oft wiederholt, wie mit startAttempts angegeben wurde. Danach wird die Anzeige als inaktiv deklariert und inaktiviert. Obwohl dieses Verhalten willkürlich erscheinen mag, wurde es empirisch entwickelt und funktioniert auf den meisten Systemen gut. Der Standardwert ist 5 für openDelay, 5 für openRepeat, 30 für openTimeout und 4 für startAttempts.
DisplayManager.DISPLAY.pingInterval Um erkennen zu können, dass ferne Anzeigen nicht mehr verfügbar sind, sendet der Befehl xdm gelegentlich über eine X-Verbindung und XSync-Aufrufe Pingsignale an diese Anzeigen. Diese Ressource gibt die Zeit (in Minuten) zwischen den Pingversuchen an. Standardmäßig ist sie auf einen Wert von 5 Minuten gesetzt. Wenn Sie häufig X-Terminals verwenden, die vom Verwaltungshost isoliert werden können, sollten Sie diesen Wert erhöhen.
Anmerkung: AIXwindows -Sitzungen können weiterhin bestehen, nachdem das Terminal versehentlich inaktiviert wurde. Der Befehl xdm sendet keine Pingsignale an lokale Bildschirme. Eine Workstationsitzung kann beendet werden, wenn der Server beispielsweise durch den NFS-Service blockiert ist und nicht auf das Pingsignal antwortet.
DisplayManager.DISPLAY.pingTimeout Um erkennen zu können, dass ferne Anzeigen nicht mehr verfügbar sind, sendet der Befehl xdm gelegentlich über eine X-Verbindung und XSync-Aufrufe Pingsignale an diese Anzeigen. Diese Ressource gibt die maximale Zeit (in Minuten) an, die auf eine Antwort des Terminals auf die Anforderung gewartet wird. Wenn das Terminal nicht antwortet, wird die Sitzung als inaktiv deklariert und beendet. Standardmäßig ist sie auf einen Wert von 5 Minuten gesetzt. Wenn Sie häufig X-Terminals verwenden, die vom Verwaltungshost isoliert werden können, sollten Sie diesen Wert erhöhen.
Anmerkung: AIXwindows -Sitzungen können weiterhin bestehen, nachdem das Terminal versehentlich inaktiviert wurde. Der Befehl xdm sendet keine Pingsignale an lokale Bildschirme. Eine Workstationsitzung kann beendet werden, wenn der Server beispielsweise durch den NFS-Service blockiert ist und nicht auf das Pingsignal antwortet.
DisplayManager.DISPLAY.terminateServer Gibt an, ob die Ausführung des X-Servers abgebrochen werden soll, wenn eine Sitzung beendet wird (anstatt den X-Server zurückzusetzen). Mit dieser Option kann die Ausführungszeit des Servers begrenzt werden, wenn dieser unbegrenzt anwachsen zu scheint. Der Standardwert ist "False".
DisplayManager.DISPLAY.userPath Der Befehl xdm setzt die Umgebungsvariable PATH für die Sitzung auf diesen Wert. Es sollte sich um eine durch Doppelpunkte getrennte Liste von Verzeichnissen handeln. Eine vollständige Beschreibung finden Sie im Abschnitt Sh Befehl in Befehlsreferenz . :/bin:/usr/bin:/usr/bin/X11:/usr/ucb ist eine allgemeine Einstellung. Der Standardwert kann zur Erstellungszeit in der AIXwindows-Systemkonfigurationsdatei mit der Ressource DefaultUserPath angegeben werden.
DisplayManager.DISPLAY.systemPath Der Befehl xdm setzt die Umgebungsvariable PATH für die Start- und Zurücksetzungsscripts auf den Wert dieser Ressource. Der Standardwert für diese Ressource wird zur Buildzeit mit dem DefaultSystemPath-Ressourceneintrag in der Systemkonfigurationsdatei angegeben. Ein gängiger Wert ist /etc:/bin:/usr/bin:/usr/bin/X11:/usr/ucb. Beachten Sie das Fehlen von. (Punkt) (das aktuelle Verzeichnis) aus diesem Eintrag. Dies empfiehlt sich für die Ausführung als Root. Auf diese Weise werden viele gängige Schemas für unbefugten Zugriff auf das System ("Trojanische Pferde") verhindert.
DisplayManager.DISPLAY.systemShell Der Befehl xdm setzt die Umgebungsvariable SHELL für die Startup- und Zurücksetzungsscripts auf den Wert dieser Ressource. Der Standardwert ist /bin/sh.
DisplayManager.DISPLAY.failsafeClient Wenn die Standardsitzung nicht ausgeführt werden kann, kehrt der Befehl xdm zu diesem Programm zurück. Dieses Programm wird ohne Argumente ausgeführt und verwendet dieselben Umgebungsvariablen wie die Sitzung (siehe den Abschnitt "Sitzungsprogramm"). Standardmäßig wird /usr/bin/X11/xterm verwendet.
DisplayManager.DISPLAY.grabServer

DisplayManager.DISPLAY.grabTimeout

Zur Verbesserung der Sicherheit annektiert der Befehl xdm beim Lesen des Anmeldenamens und des Kennworts den Server und die Tastatur. Die Ressource grabServer gibt an, ob der Server während des Lesens des Namens und des Kennworts annektiert werden sollen. Wenn diese Ressource auf "False" gesetzt ist, wird die Annektierung des Servers aufgehoben, wenn die Annektierung der Tastatur erfolgreich ist. Andernfalls wird der Server unmittelbar vor Beginn der Sitzung annektiert. Der Standardwert ist "False". Die Ressource grabTimeout gibt an, wie lange der Befehl xdm maximal auf eine erfolgreiche Annektierung wartet. Die Annektierung kann fehlschlagen, wenn ein anderer Client den Server annektiert hat oder wenn die Netzlatenzzeiten sehr hoch sind. Diese Ressource hat einen Standardwert von 3 Sekunden. Gehen Sie beim Erhöhen dieses Werts vorsichtig vor, da es den Benutzer verwirren könnte, wenn er ein ähnliches Fenster am Bildschirm sieht. Wenn die Annektierung fehlschlägt, wird der Befehl xdm inaktiviert und der Server (sofern möglich) und die Sitzung werden neu gestartet.
DisplayManager.DISPLAY.authorize

DisplayManager.DISPLAY.authName

Die Ressource authorize ist eine boolesche Ressource, die steuert, ob der Befehl xdm die Berechtigung für lokale Serververbindungen generiert und verwendet. Wenn eine Berechtigung verwendet wird, verwendet der Befehl xdm die Berechtigungsmechanismen, die als durch Leerzeichen getrennte Liste als Wert für die Ressource authName angegeben ist. XDMCP-Verbindungen geben dynamisch an, welche Berechtigungsmechanismen unterstützt werden. Deshalb wird die authName-Ressource in diesem Fall ignoriert. Wenn die Ressource authorize für einen Bildschirm gesetzt ist und keine Berechtigung verfügbar ist, wird der Benutzer in einer anderen Nachricht darüber informiert, die im Anmeldewidget angezeigt wird. Standardmäßig ist die Ressource authorize auf "True" gesetzt und authName auf MIT-MAGIC-COOKIE-1.
DisplayManager.DISPLAY.authFile Gibt die Datei an, die zum Übertragen der Berechtigungsdaten vom Befehl xdm an den Server mit der Befehlszeilenoption -auth verwendet wird. Diese Datei muss in einem Verzeichnis mit eingeschränkten Schreibberechtigungen gespeichert werden, da sie ansonsten ohne großen Aufwand entfernt werden könnte und damit der Berechtigungsmechanismus im Server außer Kraft gesetzt würde.
DisplayManager.DISPLAY.authComplain Wenn diese Ressource auf den Wert "False" gesetzt ist, ist die Verwendung von unsecureGreeting im Anmeldefenster inaktiviert. Siehe den Abschnitt Authentifizierungsclient . Der Standardwert ist "True".
DisplayManager.DISPLAY.resetSignal Die Nummer des Signals, das der Befehl xdm sendet, um den Server zurückzusetzen. Siehe den Abschnitt Server steuern . Der Standardwert ist 1 (SIGHUP).
DisplayManager.DISPLAY.termSignal Die Nummer des Signals, das der Befehl xdm sendet, um den Server zu beenden. Siehe den Abschnitt Server steuern . Der Standardwert ist 15 (SIGTERM).
DisplayManager.DISPLAY.resetForAuth Bewirkt, dass der Befehl xdm nach der Konfiguration der Berechtigungsdatei ein SIGHUP-Signal an den Server sendet, um eine weitere Zurücksetzung des Servers durchzuführen, während die neuen Berechtigungsinformationen gelesen werden. Der Standardwert ist False, was für alle AIXwindows -Server funktioniert.
DisplayManager.DISPLAY.userAuthDir Wenn der Befehl xdm nicht in die gewöhnlich verwendete Benutzerberechtigungsdatei ($HOME/.Xauthority) schreiben kann, erstellt er eine Datei mit einem eindeutigen Namen in diesem Verzeichnis und setzt die Umgebungsvariable XAUTHORITY auf den Namen der erstellten Datei. Standardmäßig wird /tmp verwendet.

XDMCP-Zugriffssteuerung

Die mit der Ressource DisplayManager.accessFile angegebene Datenbankdatei enthält Informationen, die der Befehl xdm verwendet, um Zugriffe von Bildschirmen zu steuern, die den XDMCP-Service anfordern. Diese Datei enthält drei Typen von Einträgen:

  • Einträge, die die Antwort auf Direkt -und Broadcast-Übertragung -Abfragen steuern.
  • Einträge, die die Antwort auf Indirekt -Abfragen steuern.
  • Makrodefinitionen.

Einträge für direkte Abfragen enthalten entweder einen Hostnamen oder ein Muster, das sich von einem Hostnamen durch den Einschluss eines oder mehrerer Mustererkennungszeichen unterscheidet. Ein Stern (*) entspricht einer beliebigen Folge von 0 (null) oder mehr Zeichen und einem Fragezeichen (?) (Fragezeichen) entspricht einem beliebigen einzelnen Zeichen. Diese werden mit dem Hostnamen der Anzeige verglichen. Wenn es sich bei dem Eintrag um einen Hostnamen handelt, werden alle Vergleiche mit Netzadressen durchgeführt, sodass jeder Name verwendet werden kann, der in die richtige Netzadresse aufgelöst wird. Bei Mustern werden nur tatsächliche Hostnamen für den Vergleich verwendet. Stellen Sie daher sicher, dass Sie nicht versuchen, Aliasse abzugleichen. Vor einem Hostnamen oder einem Muster mit einem! (Ausrufezeichen) bewirkt, dass Hosts, die diesem Eintrag entsprechen, ausgeschlossen werden.

Ein Eintrag für indirekte Abfragen enthält auch einen Hostnamen oder ein Muster, dem jedoch eine Liste von Hostnamen oder Makros folgt, an die die indirekten Abfragen gesendet werden sollen.

Eine Makrodefinition enthält einen Makronamen und eine Liste von Hostnamen und anderen Makros, in die das Makro erweitert wird. Um Makros von Hostnamen unterscheiden zu können, beginnen Makronamen mit einem Prozentzeichen (%). Makros können verschachtelt werden.

In Einträgen für indirekte Abfragen kann auch angegeben werden, dass der Befehl xdm den Befehl chooser ausführen soll, um ein Menü mit Hosts anzubieten, zu denen eine Verbindung hergestellt werden kann. Weitere Informationen finden Sie unter Auswahlfunktion.

Bei der Überprüfung des Zugriffs für einen bestimmten Bildschirmhost werden die Einträge nacheinander gescannt und der erste übereinstimmende Eintrag bestimmt die Antwort. Ein Eintrag für eine direkte Abfrage wird beispielsweise ignoriert, wenn ein Eintrag für eine indirekte Abfrage gesucht wird. Ein Eintrag für eine Broadcastabfrage wird ignoriert, wenn ein Eintrag für eine direkte Abfrage gesucht wird.

Leerzeilen werden ignoriert. Das Zeichen # wird als Kommentartrennzeichen behandelt und bewirkt, dass der Rest dieser Zeile ignoriert wird. Ein Backslash (\) am Ende der Zeile bewirkt, dass die neue Zeile ignoriert wird und sich Listen mit Hosts für indirekte Abfragen über mehrere Zeilen erstrecken können.

Im Folgenden sehen Sie eine Xaccess-Beispieldatei:

#
# Xaccess - XDMCP access control file
#
#
# Direct/Broadcast query entries
#
!xtra.lcs.mit.edu       # disallow direct/broadcast service for xtra
bambi.ogi.edu     # allow access from this particular display
*.lcs.mit.edu     # allow access from any display in LCS
#
# Indirect query entries
#
%HOSTS          expo.lcs.mit.edu xenon.lcs.mit.edu \\
               excess.lcs.mit.edu kanga.lcs.mit.edu
extract.lcs.mit.edu    xenon.lcs.mit.edu    #force extract to contact xenon
!xtra.lcs.mit.edu         dummy     #disallow indirect access
*.lcs.mit.edu     %HOSTS           #all others get to choose

Chooser

Für X-Terminals, die kein Hostmenü für Broadcastabfragen oder indirekte Abfragen anbieten, kann das Programm chooser (Auswahlfunktion) verwendet werden. Geben Sie in der Datei Xaccess CHOOSER als ersten Eintrag in der Liste der Hosts für indirekte Abfragen an. Das Programm chooser sendet eine Abfrageanforderung (Query) an jeden der verbleibenden Hostnamen in der Liste und zeigt dann ein Menü mit allen Hosts an, die antworten.

Die Liste kann aus dem BROADCAST bestehen. In diesem Fall sendet chooser eine Broadcastabfrage und zeigt auch dann ein Menü mit allen Hosts an, die antworten.

Im Folgenden sehen Sie eine Xaccess-Beispieldatei, in der chooser verwendet wird:

extract.lcs.mit.edu       CHOOSER   %HOSTS         #offer a menu of these hosts
xtra.lcs.mit.edu          CHOOSER   BROADCAST      #offer a menu of all hosts

Das für chooser verwendete Programm wird mit der Ressource DisplayManager.DISPLAY.chooser angegeben. Die Ressourcen für dieses Programm können in die mit der Ressource DisplayManager.DISPLAY.resources angegebene Datei eingetragen werden.

Das chooser-Programm wurde mit SelectionBoxWidget (Motif) implementiert. Eine Beschreibung der Ressourcen und Widget- oder Gadgetnamen finden Sie in der Dokumentation zur Klasse XmSelectionBoxWidget.

Serverspezifikation

Die Ressource DisplayManager.servers enthält eine Serverspezifikation oder, wenn die Werte mit einem Schrägstrich (/) beginnen, den Namen einer Datei mit Serverspezifikationenen (eine pro Zeile).

Jede Spezifikation gibt eine Anzeige an, die fortlaufend verwaltet werden soll und XDMCP nicht verwendet. Jede Spezifikation besteht aus mindestens drei Teilen:

  • Anzeigename
  • -Anzeigeklasse
  • Anzeigetyp
  • Für lokale Server eine Befehlszeile zum Starten des Servers.

Im Folgenden sehen Sie einen typischen Eintrag für die lokale Anzeigenummer 0:

:0 IBM-GT local /usr/bin/X11/X :0

Die folgenden Anzeigetypen sind verfügbar:

Element Beschreibung
Lokal Lokale Anzeige: \fIxdm\fP muss den Server ausführen
foreign Ferne Anzeige: \fIxdm\fP öffnet eine X-Verbindung zu einem aktiven Server

Der Anzeigename muss ein Name sein, der in der Option -display an ein X-Programm übergeben werden kann. Diese Zeichenfolge wird verwendet, um die anzeigenspezifischen Ressourcennamen zu generieren. Achten Sie daher darauf, die Namen abzugleichen (z. B. ":0 local /usr/bin/X11/X :0" statt "`localhost:0 local /usr/bin/X11/X :0" wenn Ihre anderen Ressourcen wie folgt angegeben werden: "DisplayManager._0.session"). Der Anzeigeklassenabschnitt wird auch in den anzeigespezifischen Ressourcen als Klasse der Ressource verwendet. Dies ist hilfreich, wenn Sie sehr viele ähnliche Anzeigen haben (z. B. sehr viele X-Terminals) und Ressourcen für Gruppen dieser Anzeigen festlegen möchten. Wenn XDMCP verwendet wird, muss die Anzeige die Anzeigeklasse angeben. Die Anzeigeklassenzeichenfolge für Ihre Einheit finden Sie in der Dokumentation zu Ihrem X-Terminal. Sollten Sie diese Zeichenfolge nicht in der Dokumentation finden, können Sie den Befehl xdm im Debugmodus ausführen und sich die für diese Einheit generierten Ressourcenzeichenfolgen ansehen, zu denen auch die Klassenzeichenfolge gehört.

Setup-Programm

Die Xsetup-Datei wird ausgeführt, nachdem der Server zurückgesetzt wurde, aber bevor das Anmeldefenster angezeigt wird. Die Datei ist gewöhnlich ein Shell-Script. Sie wird als Root ausgeführt und deshalb sollten Sie im Hinblick auf die Sicherheit vorsichtig vorgehen. Mit dieser Datei können Sie den Basishintergrund ändern oder weitere Fenster zusammen mit dem Anmeldewidget anzeigen. Da xdm die Tastatur annektiert, können andere Fenster keine Tastatureingaben empfangen. Sie werden jedoch mit der Maus interagieren. Achten Sie jedoch hier auf potenzielle Sicherheitslücken. Wenn DisplayManager.DISPLAY.grabServer gesetzt ist, kann Xsetup keine Verbindung zur Anzeige herstellen. Ressourcen für dieses Programm können in die mit der Ressource DisplayManager.DISPLAY.resources angegebene Datei eingefügt werden.

Zusätzlich zu den mit DisplayManager.exportList angegebenen Werten werden die folgenden Umgebungsvariablen übergeben:

Element Beschreibung
Anzeige Gibt den Namen der zugeordneten Anzeige an.
Pfad Gibt den Wert von DisplayManager.DISPLAY.systemPath an.
SHELL Gibt den Wert von DisplayManager.DISPLAY.systemShell an.
XAUTHORITY (Berechtigung) Gibt an, dass eine Berechtigungsdatei definiert sein kann.

Authentifizierungsclient

Das MIT-Authentifizierungswidget wurde durch einen Authentifizierungsclient ersetzt, der sich aus Standard-Motif-Widgets zusammensetzt. Im Folgenden finden Sie eine Liste der Widgetnamen (und deren Widgetklassen):

outframe(xmFrameWidget)
  inframe(xmFrameWidget)
    main(XmFormWidget)
      tframe(xmFrameWidget)
        greeting(xmLabelGadget)
      logoline(xmFormWidget)
        dpyname(xmLabelWidget)
      userline(xmRowColumnWidget)
        userlabel(xmLabelWidget)
        username(xmTextWidget)
        passlabel(xmLabelWidget)
        password(xmTextWidget)
      failsafeline(xmFormWidget)
        failsafe(xmToggleButtonWidget)
      cancelline(xmFormWidget)
        cancel(xmPushButtonWidget)
      message(xmLabelWidget)

Der Authentifizierungsclient liest ein Name/Kennwort-Paar von der Tastatur. Fügen Sie die Ressourcen für diesen Client in die mit der Ressource DisplayManager.DISPLAY.resources angegebene Datei ein. Alle Widgets haben angemessene Standardwerte und deshalb ist es nicht erforderlich, sie anzugeben. Weitere Informationen zu Standardwerten für Authentifizierungsclientressourcen sowie die entsprechende Dokumentation zu den Widgetklassen finden Sie unter /usr/lib/X11/xdm/Xresources. Die folgenden Ressourcen werden vom Authentifizierungsclient ebenfalls unterstützt:

Element Beschreibung
Xlogin*vordergrund Gibt die für den Vordergrund verwendete Farbe an.
Xlogin*hintergrund Gibt die für den Hintergrund verwendete Farbe an.
Xlogin*gruß Gibt eine Zeichenfolge an, die dieses Fenster identifiziert. Der Standardwert ist AIXwindows-Umgebung.
Xlogin*greetFont Gibt die Schriftart an, die zum Anzeigen der Begrüßung verwendet wird.
Xlogin*frameColor Gibt die Hintergrundfarbe an, die zum Anzeigen der Begrüßung verwendet wird.
Xlogin*titleFont Gibt die Schriftart an, die zum Anzeigen des Titels verwendet wird.
Xlogin*namePrompt Gibt die Zeichenfolge an, die für die Aufforderung zur Eingabe eines Benutzernamens verwendet wird. Das Xrdb-Programm entfernt nachgestellte Leerzeichen aus Ressourcenwerten. Fügen Sie am Ende der Eingabeaufforderung mit Backslashes als Escapezeichen versehende Leerzeichen hinzu. Der Standardwert ist "login:".
Xlogin*promptFont Gibt die Schriftart an, die zum Anzeigen beider Eingabeaufforderungen verwendet wird.
Xlogin*failFont Gibt die Schriftart an, die für die Failsafe-Schaltfläche verwendet wird.
Xlogin*cancelFont Gibt die Schriftart an, die für die Schaltfläche zum Abbrechen verwendet wird.
Xlogin*messageFontlist Gibt die Schriftart an, die für die Anzeige der Fehlernachricht verwendet wird.
Xlogin*failColor Gibt die Farbe an, die für die Anzeige der Fehlernachricht verwendet wird.
Xlogin*failTimeout Gibt an, wie lange (in Sekunden) die Fehlernachricht angezeigt wird. Der Standardwert sind 30 Sekunden.
Xlogin*sessionArgument Gibt das Argument an, das an das Sitzungsprogramm übergeben werden soll.
Xlogin*XmText.Übersetzungen Dies gibt die Umsetzungen an, die für den Authentifizierungsclient verwendet werden. Eine vollständige Erläuterung der Umsetzungen finden Sie in der X Toolkit-Dokumentation. Im Folgenden sehen Sie die Standardumsetztabelle:
Ctrl<Key>b: backward-character()\n\
Ctrl<Key>a: beginning-of-line()\n\
Ctrl<Key>e: end-of-line()\n\
Ctrl<Key>f: forward-character()\n\
Ctrl<Key>d: kill-next-character()\n\
Ctrl<Key>k: kill-to-end-of-line()\n\
Ctrl<Key>u: kill-to-start-of-line()\n

Sie können XDM so konfigurieren, dass die XDM-Standardumsetzungen verwendet werden, indem Sie die in Xresources definierten XmText-Umsetzungen ersetzen:

Anmerkung: Verwenden<Key>osfHelpAnstatt<Key>F1aufgrund der virtuellen Motif-Standardbindungen.)
Xlogin*XmText.translations: #override\n\

<Key>osfHelp:    set-session-argument(failsafe) finish-field()\n\
Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\
Ctrl<Key>H:      delete-previous-character() \n\
Ctrl<Key>D:      delete-character() \n\
Ctrl<Key>B:      move-backward-character() \n\
Ctrl<Key>F:      move-forward-character() \n\
Ctrl<Key>A:      move-to-beginning() \n\
Ctrl<Key>E:      move-to-end() \n\
Ctrl<Key>K:      erase-to-end-of-line() \n\
Ctrl<Key>U:      erase-line() \n\
Ctrl<Key>X:      erase-line() \n\
<Key>Return:     finish-field() \n
<Key>BackSpace:  delete-previous-character() \n\
<Key>Delete:     delete-previous-character() \n

Zusätzlich zu den typischen XmText-Aktionen werden die folgenden Aktionen vom Client unterstützt, damit sie mit den XDM-Standardumsetzungen kompatibel sind:

Löschen-vorheriges-Zeichen
Löscht das Zeichen vor dem Cursor.
Löschzeichen
Löscht das Zeichen hinter dem Cursor.
rückwärts-verschieben-Zeichen
Bewegt den Cursor rückwärts.
vorwärts-bewegen-Zeichen
Bewegt den Cursor vorwärts.
an Anfang verschieben
Bewegt den Cursor an den Anfang des bearbeitbaren Textes.
 
'Move-to-End'
Bewegt den Cursor an das Ende des bearbeitbaren Textes.
Löschen bis Zeilenende
Löscht den gesamten Text hinter dem Cursor.
Löschzeile
Löscht den gesamten Text.
Endfeld
Wenn sich der Cursor im Namensfeld befindet, wird zum Kennwortfeld vorgerückt. Wenn sich der Cursor im Kennwortfeld befindet, wird das aktuelle Name/Kennwort-Paar überprüft. Wenn das Name/Kennwort-Paar gültig ist, startet xdm die Sitzung. Andernfalls wird die Fehlernachricht angezeigt und der Benutzer wird erneut zur Eingabe aufgefordert.
Einfügezeichen
Fügt das eingegebene Zeichen ein.
set-session-argument
Gibt ein Einzelwortargument an, das beim Start an die Sitzung übergeben wird. Weitere Informationen finden Sie in den Abschnitten "Sitzungsprogramm" und "Typische Verwendung".

Startprogramm

Die Xstartup-Datei ist normalerweise ein Shell-Script. Da es als Rootbenutzer ausgeführt wird, sollten Sie bei der Ausführung auf die Sicherheit achten. Das Script enthält gewöhnlich Befehle, die Einträge zu /etc/utmp hinzufügen, die Ausgangsverzeichnisse von Benutzer über Dateiserver mounten, die Nachricht des Tages anzeigen oder die Sitzung abbrechen, wenn keine Anmeldungen zulässig sind.

Zusätzlich zu den mit DisplayManager.exportList angegebenen Werten werden folgende Variablen übergeben:

Element Beschreibung
Anzeige Gibt den Namen der zugeordneten Anzeige an.
Startseite Gibt das anfängliche Arbeitsverzeichnis des Benutzers an.
User Gibt den Benutzernamen an.
Pfad Gibt den Wert von DisplayManager.DISPLAY.systemPath an.
SHELL Gibt den Wert von DisplayManager.DISPLAY.systemShell an.
XAUTHORITY (Berechtigung) Kann auf eine Berechtigungsdatei gesetzt werden.

Es werden keine Argumente an das Script übergeben. Der Befehl xdm wartet die Beendigung dieses Scripts ab, bevor er die Benutzersitzung startet. Wenn der Exitwert dieses Scripts ungleich null ist, beendet der Befehl xdm die Sitzung und startet einen weiteren Authentifizierungszyklus.

Sitzungsprogramm

Das Programm Xsession legt den Stil der Benutzersitzung fest. Es wird mit den Berechtigungen des berechtigten Benutzers ausgeführt.

Zusätzlich zu den mit DisplayManager.exportList angegebenen Werten werden die folgenden Umgebungsvariablen übergeben:

Element Beschreibung
Anzeige Gibt den Namen der zugeordneten Anzeige an.
Startseite Gibt das anfängliche Arbeitsverzeichnis des Benutzers an.
User Gibt den Benutzernamen an.
Pfad Gibt den Wert von DisplayManager.DISPLAY.userPath an.
SHELL Gibt die Standardshell des Benutzers an (von getpwnam).
XAUTHORITY (Berechtigung) Kann auf eine vom Standard abweichende Berechtigungsdatei gesetzt werden.

Bei den meisten Installationen muss das Xsession-Programm im Ausgangsverzeichnis des Benutzers ($HOME) nach einer Datei .xsession suchen, die die Befehle enthält, die der Benutzer als Sitzung verwenden möchte. Das Xsession-Programm muss für den Fall, dass keine benutzerdefinierte Sitzung vorhanden ist, auch eine Systemstandardsitzung implementieren. Weitere Informationen finden Sie im Abschnitt "Typische Verwendung".

Das Authentifizierungswidget kann mit der Aktion "set-session-argument" ein Argument an dieses Programm übergeben. Anhand dieses Arguments kann ein anderer Sitzungsstil ausgewählt werden. Gewöhnlich wird dieses Feature verwendet, damit der Benutzer bei einem Fehler die normale Sitzung verlassen kann. Dies ermöglicht Benutzern, ihren eigenen .xsession-Prozess zu reparieren, wenn ein Fehler auftritt, ohne dass ein Verwaltungseingriff erforderlich ist. Eine Beschreibung dieses Features finden Sie im Abschnitt "Typische Verwendung".

Zurücksetzungsprogramm

Das Script Xreset wird nach der Beendigung der Benutzersitzung ausgeführt. Das Script muss als Root ausgeführt werden und muss die Befehle enthalten, die die Auswirkungen der Befehle in Xstartup rückgängig machen, indem sie Einträge aus /etc/utmp entfernen oder Verzeichnisse von Dateiservern abhängen. Die an Xstartup übergebenen Umgebungsvariablen werden auch an Xreset übergeben. Dieses Programm ist symmetrisch mit dem Programm Xstartup.

Server steuern

Der Befehl xdm steuert lokale Server mithilfe von POSIX-Signalen. Es wird erwartet, dass der Server mit einem SIGHUP-Signal zurücksetzt wird und dass alle Clientverbindungen geschlossen und weitere Bereinigungsaktionen ausgeführt werden. Es wird erwartet, dass die Serverausführung mit einem SIGTERM-Signal abgebrochen wird. Wenn diese Signale nicht die erwarteten Aktionen ausführen, können mit den Ressourcen DisplayManager.DISPLAY.resetSignal und DisplayManager.DISPLAY.termSignal alternative Signale angegeben werden.

Zur Steuerung ferner Terminals, die XDMCP nicht verwenden, durchsucht der Befehl xdm die Fensterhierarchie auf dem Bildschirm und verwendet die Protokollanforderung KillClient, um zu versuchen, das Terminal für die nächste Sitzung zu bereinigen. Dies führt möglicherweise nicht dazu, dass alle Clients inaktiviert werden, weil nur die Clients erkannt werden, für die Fenster erstellt wurden. XDMCP bietet einen Mechanismus mit höherer Sicherheit. Wenn der Befehl xdm die erste Verbindung beendet, wird die Sitzung beendet und das Terminal muss alle anderen Verbindungen schließen.

XDM steuern

Der Befehl xdm reagiert auf zwei Signale: SIGHUPund SIGTERM. Wenn ein SIGHUP-Signal gesendet wird, liest xdm die Konfigurationsdatei, die Zugriffssteuerungsdatei und die Serverdatei erneut. Der Befehl erkennt, ob Einträge in der Serverdatei hinzugefügt oder entfernt wurden. Wenn ein neuer Eintrag hinzugefügt wurde, startet der Befehl xdm eine Sitzung auf dem zugeordneten Bildschirm. Entfernte Einträge werden sofort inaktiviert, d. h., dass alle aktiven Sitzungen ohne Benachrichtigung beendet und keine neuen Sitzungen gestartet werden.

Wenn ein SIGTERM-Signal gesendet wird, beendet der Befehl xdm alle aktiven Sitzungen und wird dann beendet. Dieses Verfahren kann beim Herunterfahren des Systems verwendet werden.

Der Befehl XDM versucht, seine verschiedenen Unterprozesse für die Verwendung durch den Befehl Ps zu markieren, indem er die Befehlszeilenargumentliste an Ort und Stelle bearbeitet. Da der Befehl xdm keinen Speicherplatz für diese Task reservieren kann, empfiehlt es sich, den Befehl xdm mit einer ausreichend langen Befehlszeile zu starten (die Verwendung des vollständigen Pfadnamens sollte ausreichen). Jeder Prozess, der einen Bildschirm bedient, ist mit -display gekennzeichnet.

Weitere Möglichkeiten

Mit dem Befehl xdm können Sie auch jeweils eine Sitzung auszuführen. Verwenden Sie dazu die xinit-Befehlsoptionen oder andere geeignete Dämonprozesse, indem Sie den Server in der Befehlszeile angeben:

xdm -server ":0 local /usr/bin/X11/X :0 -force"

Der Befehl kann auch einen Dateiserver und eine Reihe von X-Terminals ausführen. Diese Konfiguration ist abgesehen davonk, dass die Datei Xservers folgendermaßen aussehen würde, identisch mit dem vorherigen Beispiel:

        extol:0 VISUAL-19 foreign
        exalt:0 NCD-19 foreign
        explode:0 NCR-TOWERVIEW3000 foreign
Damit wird der Befehl xdm angewiesen, Sitzungen auf allen drei Terminals zu verwalten. Der Abschnitt XDM steuern enthält eine Beschreibung der Verwendung von Signalen zum Aktivieren und Inaktivieren dieser Terminals.
Anmerkung: Der Befehl XDM ist nicht gut mit anderen Fenstersystemen koexistieren. Wenn Sie mehrere Fenstersysteme auf derselben Hardware verwenden möchten, verwenden Sie den Befehl xinit.

Beispiele

  1. Das folgende Beispielscript xstartup verhindert die Anmeldung, während die Datei /etc/nologin vorhanden ist. Da die Anzeige von Nachrichten hier nicht vorgesehen ist, (es gibt keinen X-Basisclient, der Dateien anzeigt), wird das Setup in diesem Beispiel nicht empfohlen, weil die Anmeldung ohne Erklärung fehlschlagen würde. Es handelt sich also nicht um ein vollständiges Beispiel, sondern nur um eine Demonstration der verfügbaren Funktionalität.
    #!/bin/sh
    #
    # Xstartup
    #
    # This program is run as root after the user is verified
    #
    if [ \-f /etc/nologin ]; then
            exit 1
    fi
    exit 0
  2. Dieses XSitzung -Script erkennt den speziellen Failsafe -Modus, der in den Übersetzungen in der vorherigen Datei XRessourcen angegeben ist, um ein Escapezeichen aus der normalen Sitzung bereitzustellen:
    #!/bin/sh
    exec > $HOME/.xsession-errors 2>&1
    case $# in
    1)
            case $1 in failsafe)
                   exec aixterm -geometry 80x24-0-0
                   ;;
            esac
    esac
    startup=$HOME/.xsession
    resources=$HOME/.Xresources
    if [ -f /usr/bin/X11/startx ]; then
           exec /usr/bin/X11/startx -t -wait
    elif [ -f $startup]; then
           exec $startup
    else
           if [ -f $resources ]; then
                   xrdb -load $resources
           fi
           mwm &
           exec aixterm -geometry 80x24+10+10 -ls
    fi
  3. Damit XDM vom Systemstart gestartet wird, geben Sie als Rootbenutzer Folgendes ein:
    /usr/lib/X11/xdm/xdmconf
  4. Geben Sie zum Inaktivieren von XDM beim Warmstart als Root Folgendes ein:
    /usr/lib/X11/xdm/xdmconf -d
  5. Bei Verwendung von XDM für die Verwaltung Ihrer Anzeige stellt eine Authentifizierungsprozedur sicher, dass nur zulässige Clients eine Verbindung zu Ihrer Anzeige herstellen können. Clients, die mit X11 R4- und X11 R5-Bibliotheken erstellt wurden, verstehen dieses Protokoll. Clients, die mit X11 R3- oder älteren Bibliotheken erstellt wurden, unterstützen dieses Authentifizierungsprotokoll nicht und dürfen keine Verbindung zum Xserver herstellen, sofern keine xhost-Berechtigung erteilt wird. Sie können lokale Clients mit dem folgenden Befehl verbinden:
    xhost =localhost
    oder
    xhost =machine
    Dabei ist Maschine der Hostname des lokalen Clients.

Dateien

Element Beschreibung
/usr/lib/X11/xdm/xdm-config Die Standardkonfigurationsdatei.
/usr/lib/X11/xdm/Xaccess Die Standardzugriffsdatei, die autorisierte Bildschirme enthält.
/usr/lib/X11/xdm/Xservers Die Standardserverdatei, in der zu verwaltende Server ohne XDMCP-Unterstützung aufgelistet sind.
$(HOME)/.Xauthority Die Benutzerberechtigungsdatei, in der xdm Schlüssel speichert, die von Clients gelesen werden können.
/usr/lib/X11/xdm/chooser Die Standardauswahlfunktion.
/usr/bin/X11/xrdb Das Standardladeprogramm für die Ressourcendatenbank.
/usr/bin/X11/X Der Standardserver.
/usr/bin/X11/xterm Das Standardsitzungsprogramm und der sichere Client.
/usr/lib/X11/xdm/A<host>\-<suffix> Die Standardposition für Berechtigungsdateien.