GNU/Linux >> Znalost Linux >  >> Ubuntu

Ubuntu – Jak nechat Pam_exec spustit skript jako aktuální uživatel?

Potřebuji spustit skript při otevření relace jako uživatel, který relaci otevírá.

Přidal jsem do /etc/pam.d/common-session :

session optional        pam_exec.so      log=/tmp/test_pam_foo.log /usr/local/bin/test_pam_foo.sh

Také jsem se pokusil aktivovat pam_exec volbu seteuid

Základní skript /usr/local/bin/test_pam_foo.sh :

#!/bin/sh
id -u >> /tmp/test_pam_foo
id -ru >> /tmp/test_pam_foo

Bohužel neustále dostávám jako efektivní id a skutečné id.

Uniká mi něco?

Jako alternativu znám existenci pam_script, nezaměňovat s pam-script.

Tento pam_script se standardně spouští jako aktuální uživatel a má volbu runas vynutit spuštění jako root. Ale rád bych upřednostnil používání pam libs, které jsou již zabaleny v mé distribuci (Ubuntu 12.04).

Přijatá odpověď:

Můžete mít /usr/local/bin/test_pam_foo.sh

změnit uživatele, protože je v PAM_USER proměnná prostředí.

Dejte si pozor na poznámku v pam_exec manuálová stránka o tom, že uživatel má potenciálně kontrolu nad prostředím (v závislosti na tom, jaká služba jej používá (např. su )). Takže použití skriptu tam pravděpodobně není dobrý nápad (i když opravíte $PATH a dalších problematických proměnných, budou některé, se kterými nemůžete nic dělat, jako SHELLOPTS nebo BASH_ENV pro bash skripty).

Nejlepší by bylo použít obal, který změní uživatele před voláním skriptu.


Ubuntu
  1. Jak povolit uživateli používat sudo v Ubuntu Linux

  2. Jak spustit Wireshark na Ubuntu 17.10?

  3. Jak zkopírovat cestu k aktuálnímu adresáři v Ubuntu 18.04?

  1. Jak spustit skript Bash {7 metod}

  2. Přizpůsobte si terminál na Ubuntu 20.04 – jak na to?

  3. Jak spustit skript??

  1. Jak nainstalovat Hadoop na Ubuntu 18.04 nebo 20.04

  2. Jak odstranit uživatele na Ubuntu

  3. Jak vytvořit uživatele Sudo na Ubuntu