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

Ubuntu – Wie kann Pam_exec das Skript als aktueller Benutzer ausführen?

Ich muss ein Skript ausführen, wenn die Sitzung geöffnet wird, als der Benutzer, der die Sitzung öffnet.

Ich habe in /etc/pam.d/common-session :

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

Ich habe auch versucht, die Option seteuid von pam_exec zu aktivieren

Das grundlegende Skript /usr/local/bin/test_pam_foo.sh :

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

Leider bekomme ich die ganze Zeit als effektive ID und echte ID.

Übersehe ich etwas?

Als Alternative kenne ich die Existenz von pam_script, nicht zu verwechseln mit pam-script.

Dieses pam_script wird standardmäßig als aktueller Benutzer ausgeführt und hat die Option runas um die Ausführung als root zu erzwingen. Aber ich möchte die Verwendung von Pam-Bibliotheken privilegieren, die bereits in meiner Distribution gepackt sind (Ubuntu 12.04).

Akzeptierte Antwort:

Nun, Sie können /usr/local/bin/test_pam_foo.sh haben

Ändern Sie den Benutzer, da er sich im PAM_USER befindet Umgebungsvariable.

Beachten Sie den Hinweis in pam_exec man-Seite über die potenzielle Kontrolle des Benutzers über die Umgebung (abhängig davon, welcher Dienst sie verwendet (wie su )). Daher ist die Verwendung eines Skripts dort wahrscheinlich keine gute Idee (selbst wenn Sie $PATH reparieren und andere problematische Variablen gibt es einige, gegen die Sie nichts tun können, wie SHELLOPTS oder BASH_ENV für Bash-Skripte).

Am besten verwenden Sie einen Wrapper, der den Benutzer ändert, bevor Sie Ihr Skript aufrufen.


Ubuntu
  1. So erlauben Sie dem Benutzer, sudo in Ubuntu Linux zu verwenden

  2. Passen Sie das Terminal unter Ubuntu 20.04 an - wie geht das?

  3. Wie führt man Wireshark unter Ubuntu 17.10 aus?

  4. Wie kopiert man den Pfad des aktuellen Verzeichnisses in Ubuntu 18.04?

  5. Wie man ein Skript ausführt??

So ändern Sie das Ubuntu-Design

So ändern Sie die IP-Adresse in Ubuntu

So schreiben Sie ein Shell-Skript in Ubuntu

So überprüfen Sie die Benutzergruppe(n), denen ein Ubuntu-Benutzer angehört

So führen Sie Memtest in Ubuntu 22.04 aus

So erstellen und führen Sie ein Shell-Skript in Ubuntu 22.04 aus