GNU/Linux >> Znalost Linux >  >> Linux

Jak provést příkaz před přihlášením uživatele v systému Linux?

To je otázka, kterou jsem několikrát viděl u několika příchutí Linuxu, takže zkusme být vyčerpávající.
Jaký je způsob spuštění skriptu/příkazu/programu před a po přihlášení uživatele do relace na ploše?

Přijatá odpověď:

Úvod

Spuštění programu v grafickém prostředí před přihlášením uživatele do grafického prostředí závisí na vašem správci zobrazení. Po přihlášení vám poskytne přihlašovací rozhraní a nastaví vaše grafické prostředí.
Nejdůležitější jsou následující:

  • GDM je správce zobrazení GNOME.
  • LightDM je správce zobrazení pro různé plochy, může používat různé front-endy napsané v libovolné sadě nástrojů.
  • LXDM je správce zobrazení LXDE, ale nezávislý na desktopovém prostředí LXDE.
  • SDDM je moderní správce displeje pro X11 a Wayland, jehož cílem je být rychlý, jednoduchý a krásný.

Probereme, jak nastavit provádění příkazu, když se správce zobrazení objeví před přihlášením jakéhokoli uživatele, a jak něco provést, když je někdo konečně přihlášen.

Pokud nevíte, který z nich používáte, můžete se obrátit na tuto otázku:
Existuje jednoduchý linuxový příkaz, který mi řekne, co je můj správce zobrazení?

DŮLEŽITÉ
Než začnu, upravíte soubor, který, pokud není uvedeno, spustí příkaz jako root . Neodstraňujte existující věci v těchto souborech s výjimkou případů, kdy víte, co děláte, a buďte opatrní v tom, co do těchto souborů vkládáte. To by vám mohlo odebrat možnost přihlásit se.

GDM

Buďte opatrní s GDM, bude spouštět všechny skripty jako `root`, jiný chybový kód než 0 by mohl omezit vaši schopnost přihlášení a GDM bude čekat, až váš skript skončí, takže nebude reagovat, dokud bude váš příkaz spuštěn.
Pro úplné vysvětlení [přečtěte si dokumentaci][5].

Před přihlášením

Pokud potřebujete spouštět příkazy předtím, než se uživatel přihlásí, můžete upravit soubor:
`/etc/gdm3/Init/Default`.
Tento soubor je skript shellu, který bude spuštěn před zobrazením se uživateli zobrazí správce.

Po přihlášení

Pokud potřebujete provést věci, jakmile se uživatel přihlásí, ale před inicializací jeho relace, upravte soubor:
`/etc/gdm3/PostLogin/Default`
Pokud chcete provést příkaz po relaci inicializace relace (env, grafické prostředí, přihlášení…) upravte soubor:
`/etc/gdm3/PreSession/Default`

LightDM

Budu mluvit o lightdm.conf a ne o /etc/lightdm.conf.d/*.conf. Můžete dělat, co chcete, důležité je znát možnosti, které můžete použít.
Buďte opatrní s lightDM, můžete již mít spouštěných několik dalších skriptů, měli byste si svůj konfigurační soubor před úpravou přesně přečíst. také pořadí, ve kterém tyto skripty vložíte, může ovlivnit způsob načítání relace.

Související:Vsftpd selže při ověřování pam?

LightDM funguje trochu jinak než ostatní, do hlavních konfiguračních souborů vložíte volby, které označují skript, který bude spuštěn.

Upravte hlavní soubor lightDM conf /etc/lightdm/lightdm.conf .

První řádek byste měli přidat s [Seat:*] , jak je uvedeno zde:

Pozdější verze lightdm (15.10 a novější) nahradily zastaralé
[SeatDefaults] za [Seat:*]

Před přihlášením

Přidejte řádek `greeter-setup-script=/my/path/to/script`
Tento skript bude spuštěn, když lightDM zobrazí přihlašovací rozhraní.

Po přihlášení

Přidejte řádek `session-setup-script=/script/to/start/script`
Po úspěšném přihlášení uživatele se skript spustí jako `root`.

LXDM

Před přihlášením

Pokud chcete provést příkaz předtím, než se kdokoli přihlásí, můžete upravit skript shellu:
`/etc/lxdm/LoginReady`

Po přihlášení

Pokud chcete spustit příkaz poté, co se někdo přihlásí, ale jako uživatel root, můžete upravit skript shellu:
`/etc/lxdm/PreLogin`
A pokud chcete příkaz spustit jako přihlášený uživatel, skript můžete upravit:
`/etc/lxdm/PostLogin`

SSDM

O tom jsem nenašel správné informace... Neváhejte a upravte tuto část.


Linux
  1. Jak vytvořit skript příkazu Linux

  2. Login Příklady příkazů v Linuxu

  3. matlab spustí skript z příkazové řádky linuxu

  1. Jak zamknout a odemknout uživatele v Linuxu

  2. Linux su příkaz

  3. Jak vyčistit výstup příkazu linux 'script'

  1. Jak zakázat konkrétní příkaz pro konkrétního uživatele v Linuxu

  2. Jak omezit uživatelské příkazy v Linuxu

  3. Jak nechat uživatele provést příkaz obsahující uvozovky v sudoers?