[gelöst] Systemd, PAM? root-Script bei User-Anmeldung

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

[gelöst] Systemd, PAM? root-Script bei User-Anmeldung

Beitrag von chmeyer » 22.06.2016 19:59:30

Hallo zusammen,

ich möchte bei der Anmeldung von (Domänen-)Benutzern ein Logfile schreiben, das auf einem Netzlaufwerk (smb) eines Windows-Servers liegt.

Zugriffsrechte auf das Netzlaufwerk haben aber aus Sicherheitsgründen die Domänenbenutzer nicht, sondern nur der "Computeraccount" (Trusted Machine Account) des Clients.
Eigentlich lässt sich das schön mit "smbclient -P ..." erledigen, doch auch hier habe ich noch ein Problem.
viewtopic.php?f=9&t=161214

Zum Problem:
"smbclient -P" muss wegen der Authentifizierung am Windows Server meines Wissens als root ausgeführt werden.

Wie starte ich beim Anmelden eines Benutzers ein root-Script, das den Namen des sich anmeldenden Benutzers "kennt".
Systemd user-units scheiden aus, weil sie nicht als root laufen.
Irgendwann bin ich darüber gestolpert, das PAM das kann (Benutzername in der Variablen $USER ?), allerdings finde ich es auch nicht mehr und habe auch keine Idee, welches PAM-Modul das können sollte (PAM-exec?).

Falls jemand andere Möglichkeiten kennt, die Logdatei auf dem Windows-Server zu führen: Immer her damit!
Zuletzt geändert von chmeyer am 26.06.2016 14:59:35, insgesamt 1-mal geändert.

chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

Re: Systemd, PAM? root-Script bei User-Anmeldung

Beitrag von chmeyer » 26.06.2016 14:58:16

libpam-script ist die Lösung.

Paket installieren, Skripte unter /usr/share/libpam-script/pam_script_ses_open (für Anmeldeskripte) bzw. ...ses_close (für Abmeldeskripte) speichern, fertig.

Falls man die PAM Einstellungen von Hand verwaltet, muss man noch /etc/pam.d/common-session um einen Eintrag am Anfang des "Additional" block ergänzen:

Code: Alles auswählen

session optional pam_script.so
$PAM_USER ist der Name des Benutzers, der sich gerade anmeldet, das Skript läuft bei Systemanmeldungen mit root- Rechten, bei "su" mit den Rechten des vorherigen Benutzers.

Danke trotzdem,
Christian

Antworten