Script bei Benutzer Abmeldung ausführen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Script bei Benutzer Abmeldung ausführen

Beitrag von joe2017 » 26.06.2019 14:54:19

Hallo zusammen,

ich versuche ein Script während der Benutzer Abmeldung auszuführen. Leider finde ich nicht den passenden Pfad in welchem ich mein Script ablegen muss.
Für die Anmeldung gibt es ja unterschiedliche Pfade:
/etc/xda/autostart/
/etc/profile.d/


Oder eine Service unter:
/etc/systemd/system/

Jedoch finde ich keinen passenden Pfad für die Abmeldung. Ich müsste während dem Abmeldescript auch noch auf den aktuell angemeldeten Benutzer ($USERNAME) zugreifen, um diverse Verzeichnisse in dem Userprofile löschen zu können. Muss hierfür ebenfalls ein Service geschrieben werden welcher evtl. während der Abmeldung ausgeführt wird? Oder wie löst Ihr so etwas?

TomL

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von TomL » 26.06.2019 15:12:03

Ich starte mein auto-update-script so:

Code: Alles auswählen

# cat /home/thomas/.config/autostart/50_autoupdate.desktop
[Desktop Entry]
Type=Application
Exec=/usr/local/bin/pkexec-run autoupdate -u $USER -d 2
Terminal=false

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von joe2017 » 27.06.2019 09:41:17

Hallo Thomas,

mit dem Login Script habe ich auch kein Problem. Ich möchte ein Script bei der Abmeldung ausführen.
Hierfür finde ich jedoch keinen Pfad. Das Script sollte auch nicht in dem jeweiligen User Profile liegen. Dieses soll für alle User ausgeführt werden.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von MSfree » 27.06.2019 10:09:35

joe2017 hat geschrieben: ↑ zum Beitrag ↑
27.06.2019 09:41:17
Das Script sollte auch nicht in dem jeweiligen User Profile liegen.
Es ist aber nur diese Lösung vorgesehen.
Dieses soll für alle User ausgeführt werden.
Ein globales Logout-Skript ala /etc/bash.bash_logout ist nicht vorgesehen. Ein böswilliger Admin könnte hiermit auch ein Sicherheitsloch reißen, um sich ein Hintertürchen zu schaffen. Ich als Benutzer wäre auch alles andere als begeistert, wenn mir irgendwelche Automatismen in meinen home-Verzeichnis irgendwelche Dateien löschen würden. Was in meinem Home liegt, gehört mir und darf auch nicht gelöscht werden! Bitte verabschiede dich von solchen abstrusen Gedanken.

Wenn es dir darum geht, daß Benutzer die Festplatte vollmüllen, dann verwende Quota, um das erlaubte Speicherkontingent einzuschränken.

TomL

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von TomL » 27.06.2019 11:36:22

*uuups*.... klassischer verleser :-) ... steht ja auch da, Abmeldung.

Um ein Script bei An- oder Anmeldung zu starten, brauchst Du pam.d. Das funktioniert absolut zuverlässig, ohne dass man selber am Homedir des Users was basteln muss. Ein Problem bleibt aber dabei bestehen: keine Anwendungen, die X benötigen. Die Lösung lautet also: /etc/pam.d/common-session.

Ich nutze das erfolgreich bei einer eigenen Problemlösung, und dabei funktionierts absolut zuverlässig.

Was das hier angeht...
joe2017 hat geschrieben: ↑ zum Beitrag ↑
26.06.2019 14:54:19
Ich müsste während dem Abmeldescript auch noch auf den aktuell angemeldeten Benutzer ($USERNAME) zugreifen, um diverse Verzeichnisse in dem Userprofile löschen zu können.
... bin ich mit msfree einer Meinung.... sowas geht ja wirklich gar nicht....

KP97
Beiträge: 3428
Registriert: 01.02.2013 15:07:36

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von KP97 » 27.06.2019 12:57:55

Als Suchbegriff:
debian kiosk mode

guennid

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von guennid » 27.06.2019 13:14:35

Vielleicht hülfe es dir weiter, wenn du mal angäbest, was das script denn bei der Benutzerabmeldung eigentlich tun soll?

Grüße, Günther

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von joe2017 » 27.06.2019 13:22:30

Das mit dem löschen von Dateien war im Übrigen auch nur ein Beispiel. Hierbei geht es mir auch nur um eine Datei welche ich zuvor selbst erzeugt habe.

Und zwecks dem böswilligen Admin. Ich könnte das auch ganz einfach mit einem globalen Anmeldescript erledigen. Somit hat der Admin auch wieder alle Möglichkeiten.
Somit würde das keinen Sinn machen, ein globales Anmeldescript zu haben, aber kein globales Abmeldescript. Oder sehe ich da etwas falsch?

In meinem Fall wollte ich einfach schon beim Abmelden und nicht erst bei der Anmeldung etwas aufräumen.
Vielleicht hat ja dennoch jemand eine Idee für ein globales Abmeldescript.

Andernfalls muss ich das doch mit meinem Anmeldescript erledigen. Das ist zwar unschön, aber natürlich machbar.

Benutzeravatar
MSfree
Beiträge: 10759
Registriert: 25.09.2007 19:59:30

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von MSfree » 27.06.2019 13:44:28

joe2017 hat geschrieben: ↑ zum Beitrag ↑
27.06.2019 13:22:30
Vielleicht hat ja dennoch jemand eine Idee für ein globales Abmeldescript.
Wie gesagt, ein globales Skript ist nicht vorgesehen und allenfalls über PAM machbar. Du kannst aber pro Benutzer eine Logout-Skript im home-Verzeichnis anlegen, das beim Logout/Exit ausgeführt wird. Für die Bash heißt die Datei ~/.bash_logout.

Aber auch das ist nicht nebenwirkungsfrei. Ich arbeite z.B. gerne mit mehreren Login-Sessions gleichzeit, z.B. 4 offene Xterms oder 3-4 offene Konsolen im Textmodus. Wenn das erste Terminal geschlossen wird, wird zum ersten Mal die .bash_logout ausgeführt und löscht ggfls. Dateien, die die 2. Session noch braucht. Die Nebenwirkungen existieren aber auch beim Login, so daß hier der letzte Login Dateien löscht, die der erste Login schon geöffnet hat.

Gerade bei Löschaktionen muß man aufpassen, daß man (sich) damit keine Probleme schafft.

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von joe2017 » 27.06.2019 16:52:54

Das mit der Datei (~/.bash_logout) hatte ich bereits gefunden. Jedoch müsste ich pro User ein Script anlegen. Das gefällt mir aber nicht.

Hmmm...
Mal schauen wie ich das lösen werde. Wahrscheinlich dann doch über Logon Script.

Die Frage wäre, warum so etwas in Debian nicht vorgesehen ist? Eigentlich schade.

Vielen Dank zusammen.

TomL

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von TomL » 27.06.2019 18:19:35

joe2017 hat geschrieben: ↑ zum Beitrag ↑
27.06.2019 16:52:54
Die Frage wäre, warum so etwas in Debian nicht vorgesehen ist? Eigentlich schade.
Diese Aussage ist falsch, natürlich ist das in Debian vorgesehen und auch möglich. Mit PAM kann man hoch flexibel auf Login- und Logout-Events reagieren... sogar danach unterschieden, wie die An- oder Abmeldung erfolgt ist, z.B. lokal via TTY, oder via GUI, oder SSH....

Allerdings muss man unbedingt auf das achten, worauf msfree schon hingewiesen hat... ein User kann sich mehrfach regulär einloggen und dementsprechend auch mehrfach regulär ausloggen. Bei mir läuft das schon seit längerem absolut stabil.... allerdings der Prämisse folgend, dass es sich beim lokalen angemeldeten primären User (auch als multipler User) zum gleichen Zeitpunkt immer um den gleichen User handelt und das für andere User (z.B. remote via SSH) oder weitere nachträglich lokal angemeldete User wegen einer niedrigeren Priorität die Jobs in dieser ausdrücklichen Prozessverarbeitung unterdrückt werden.

Also, wennn Du auf Logout reagieren willst, das ist kein Problem, Du musst nur den tatsächlich letzten Logout ermitteln und dann nur darauf reagieren.... PAM kann das perfekt.

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: Script bei Benutzer Abmeldung ausführen

Beitrag von joe2017 » 28.06.2019 11:19:21

Hi Thomas & MSfree,

vielen Dank für die Info. Dann werde ich mir das Ganze mal anschauen. :THX:

Antworten