Wie führe ich ein Skript zur gdm-Anmeldung automatisch für alle Benutzer aus?


8

Welche Datei sollte ich ändern, um einige Anweisungen auszuführen, wenn sich ein Benutzer über gdm anmeldet?

Ich habe es versucht, /etc/bashrcaber das wird nur ausgeführt, wenn bash gestartet wird (und jedes Mal, wenn ein xterm geöffnet ist). Ich möchte etwas nur einmal ausführen, wenn sich der Benutzer anmeldet.

Ich möchte bei jeder Anmeldung des Benutzers (einschließlich des Fenstermanagers) einige Benutzereinstellungen "zurücksetzen", sodass das Skript ausgeführt werden sollte, bevor die WM initialisiert wird.


4
Warum möchten Sie Ihre Benutzer so ärgern?
Keith

Antworten:


8

Die Lösung, die für mich am besten zu funktionieren scheint, ist das Bearbeiten /etc/gdm/PostLogin/Default. Dies wird ausgeführt, sobald sich der Benutzer mit gdm anmeldet. Genau das, was ich wollte.


1

Bei Debian und Derivaten können Sie Änderungen vornehmen /etc/profile, denken Sie jedoch nicht, dass dies universell ist.


Dies gilt nur für Shell-Anmeldungen - und das OP wies darauf hin, dass er an einer solchen Lösung nicht interessiert war.
Rozcietrzewiacz

1
@rozcietrzewiacz: Dies funktioniert auch für GDM-Anmeldungen, da es liest /etc/profile(siehe /etc/gdm/Xsession). Ich denke, es gibt nicht für alle DMs eine allgemeine Regel.
Enzotib

Hm ... Vielleicht ist es das, ich weiß es nicht - aber haben Sie überprüft, wann es sonst noch bezogen wird? Man kann natürlich einige Tests des Login-Setups durchführen, aber dann sollten Sie diesen Ansatz genauer beschreiben.
Rozcietrzewiacz

0

Von der Manpage:

Wenn bash als interaktive Anmeldeshell oder als nicht interaktive Shell mit der Option --login aufgerufen wird, werden zuerst Befehle aus der Datei / etc / profile gelesen und ausgeführt, sofern diese Datei vorhanden ist. Nach dem Lesen dieser Datei wird in dieser Reihenfolge nach ~ / .bash_profile, ~ / .bash_login und ~ / .profile gesucht und Befehle von der ersten vorhandenen und lesbaren gelesen und ausgeführt. Die Option --noprofile kann verwendet werden, wenn die Shell gestartet wird, um dieses Verhalten zu verhindern.

Wenn eine Anmeldeshell beendet wird, liest bash Befehle aus der Datei ~ / .bash_logout und führt sie aus, falls vorhanden.

Wenn eine interaktive Shell gestartet wird, die keine Anmeldeshell ist, liest bash Befehle aus /etc/bash.bashrc und ~ / .bashrc und führt sie aus, sofern diese Dateien vorhanden sind. Dies kann durch Verwendung der Option --norc verhindert werden. Die Option --rcfile file zwingt bash, Befehle aus der Datei anstelle von /etc/bash.bashrc und ~ / .bashrc zu lesen und auszuführen.

Um die WM Ihrer Benutzer zu ändern: Deinstallieren Sie kdm / gdm / xdm / slim, richten Sie die WM in ~ / .xinitrc ein und führen Sie "startx" in Ihrer Bash-Konfiguration aus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.