GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich einen Befehl vor der Benutzeranmeldung unter Linux aus?

Das ist eine Frage, die ich schon mehrmals für verschiedene Linux-Varianten gesehen habe, also versuchen wir, erschöpfend zu sein.
Was ist die Methode, um Skripte/Befehle/Programme vor und nach der Anmeldung des Benutzers in seiner Desktop-Sitzung auszuführen?

Akzeptierte Antwort:

Einführung

Um ein Programm in einer grafischen Umgebung auszuführen, bevor sich ein Benutzer in einer grafischen Umgebung anmeldet, hängt es von Ihrem Display-Manager ab. Ein Display-Manager ist dafür verantwortlich, Ihnen eine Anmeldeschnittstelle bereitzustellen und Ihre grafische Umgebung einzurichten, sobald Sie sich angemeldet haben.
Die wichtigsten sind die folgenden:

  • GDM ist der GNOME-Anzeigemanager.
  • LightDM ist ein Cross-Desktop-Display-Manager, der verschiedene Front-Ends verwenden kann, die in jedem Toolkit geschrieben sind.
  • LXDM ist der LXDE-Anzeigemanager, aber unabhängig von der LXDE-Desktopumgebung.
  • SDDM ist ein moderner Display-Manager für X11 und Wayland, der darauf abzielt, schnell, einfach und schön zu sein.

Wir werden untersuchen, wie die Ausführung von Befehlen eingerichtet wird, wenn das Popup-Fenster des Display-Managers angezeigt wird, bevor sich ein Benutzer anmeldet, und wie etwas ausgeführt wird, wenn jemand endlich angemeldet ist.

Wenn Sie nicht wissen, welchen Sie verwenden, können Sie sich auf diese Frage beziehen:
Gibt es einen einfachen Linux-Befehl, der mir sagt, was mein Display-Manager ist?

WICHTIG
Bevor ich anfange, werden Sie die Datei bearbeiten, außer wenn erwähnt wird, dass der Befehl als root ausgeführt wird . Entfernen Sie keine vorhandenen Inhalte in diesen Dateien, es sei denn, Sie wissen, was Sie tun, und seien Sie vorsichtig, was Sie in diese Dateien einfügen. Dadurch könnten Sie sich nicht mehr anmelden können.

GDM

Seien Sie vorsichtig mit GDM, es wird alle Skripte als „root“ ausführen, ein anderer Fehlercode als 0 könnte Ihre Anmeldemöglichkeiten einschränken und GDM wird warten, bis Ihr Skript fertig ist, wodurch es nicht mehr reagiert, solange Ihr Befehl ausgeführt wird.
Für eine vollständige Erklärung [lesen Sie die Dokumentation][5].

Vor der Anmeldung

Wenn Sie Befehle ausführen müssen, bevor sich ein Benutzer angemeldet hat, können Sie die Datei bearbeiten:
`/etc/gdm3/Init/Default`.
Diese Datei ist ein Shell-Skript, das vor der Anzeige ausgeführt wird Manager wird dem Benutzer angezeigt.

Nach der Anmeldung

Wenn Sie Dinge ausführen müssen, nachdem sich ein Benutzer angemeldet hat, aber bevor seine Sitzung initialisiert wurde, bearbeiten Sie die Datei:
`/etc/gdm3/PostLogin/Default`
Wenn Sie den Befehl nach der Sitzung ausführen möchten der Sitzungsinitialisierung (env, grafische Umgebung, Login…) bearbeiten Sie die Datei:
`/etc/gdm3/PreSession/Default`

LightDM

Ich werde über lightdm.conf sprechen und nicht über /etc/lightdm.conf.d/*.conf. Sie können tun, was Sie wollen, wichtig ist, die Optionen zu kennen, die Sie verwenden können.
Seien Sie vorsichtig mit lightDM, Sie könnten bereits mehrere andere Skripte starten, Sie sollten Ihre Konfigurationsdatei genau lesen, bevor Sie sie bearbeiten. Auch die Reihenfolge, in der Sie diese Skripte platzieren, kann die Art und Weise beeinflussen, wie die Sitzung geladen wird.

Verwandt:Vsftpd schlägt bei der Pam-Authentifizierung fehl?

LightDM funktioniert etwas anders als die anderen. Sie werden Optionen in die Hauptkonfigurationsdateien einfügen, um das auszuführende Skript anzugeben.

Bearbeiten Sie die LightDM-Hauptkonfigurationsdatei /etc/lightdm/lightdm.conf .

Sie sollten die erste Zeile mit [Seat:*] hinzufügen , wie hier angegeben:

Spätere Versionen von lightdm (ab 15.10) haben die veralteten
[SeatDefaults] durch [Seat:*]

ersetzt

Vor der Anmeldung

Fügen Sie eine Zeile hinzu:`greeter-setup-script=/my/path/to/script`
Dieses Skript wird ausgeführt, wenn lightDM die Anmeldeoberfläche anzeigt.

Nach der Anmeldung

Fügen Sie eine Zeile `session-setup-script=/script/to/start/script`
hinzu. Dadurch wird das Skript als `root` ausgeführt, nachdem sich ein Benutzer erfolgreich angemeldet hat.

LXDM

Vor der Anmeldung

Wenn Sie den Befehl ausführen möchten, bevor sich jemand angemeldet hat, können Sie das Shell-Skript bearbeiten:
`/etc/lxdm/LoginReady`

Nach der Anmeldung

Wenn Sie den Befehl ausführen möchten, nachdem sich jemand als Root angemeldet hat, können Sie das Shell-Skript bearbeiten:
`/etc/lxdm/PreLogin`
Und wenn Sie den Befehl als angemeldeter Benutzer ausführen möchten, Sie können das Skript bearbeiten:
`/etc/lxdm/PostLogin`

SSDM

Konnte keine genauen Informationen darüber finden … Fühlen Sie sich frei, diesen Teil zu bearbeiten.


Linux
  1. So erstellen Sie ein Skript eines Linux-Befehls

  2. Linux-su-Befehl

  3. So deaktivieren Sie einen bestimmten Befehl für einen bestimmten Benutzer in Linux

  4. Login-Befehlsbeispiele in Linux

  5. matlab Skript von der Linux-Befehlszeile ausführen

So erstellen Sie Benutzer unter Linux (Befehl useradd)

So löschen/entfernen Sie Benutzer in Linux (Befehl userdel)

ID-Befehl unter Linux

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

So deaktivieren Sie die SSH-Anmeldung für einen bestimmten Benutzer in Linux

Wie führe ich einen Befehl in einem Shell-Skript aus?