Comment exécuter automatiquement un script sur la connexion gdm pour tous les utilisateurs?

8

Quel fichier dois-je modifier pour exécuter certaines instructions lorsqu'un utilisateur se connecte via gdm?

J'ai essayé /etc/bashrcmais cela n'est exécuté qu'au démarrage de bash (et à chaque fois qu'un xterm est ouvert). Je voudrais exécuter quelque chose une seule fois lorsque l'utilisateur se connecte.

Ce que je veux faire, c'est "réinitialiser" certaines préférences de l'utilisateur à chaque connexion de l'utilisateur (y compris le gestionnaire de fenêtres), de sorte que le script doit s'exécuter avant l'initialisation du WM.

Bogdan
la source
4
Pourquoi voulez-vous agacer vos utilisateurs comme ça?
Keith

Réponses:

8

La solution qui semble fonctionner le mieux pour moi est d'éditer /etc/gdm/PostLogin/Default. Ceci est exécuté juste après que l'utilisateur se connecte avec gdm. Juste ce que je voulais.

Bogdan
la source
1

Sur Debian et les dérivés que vous pouvez modifier /etc/profile, ne pensez pas que ce soit universel, cependant.

enzotib
la source
C'est uniquement pour les connexions shell - et l'OP a souligné qu'il n'était pas intéressé par une telle solution.
rozcietrzewiacz
1
@rozcietrzewiacz: cela fonctionne également pour les connexions GDM, car il lit /etc/profile(voir /etc/gdm/Xsession). Il n'y a pas de règle générale pour tous les DM, je pense.
enzotib
Hm ... C'est peut-être le cas, je ne sais pas - mais avez-vous vérifié quand il provient d' autre source? Bien sûr, on peut tester la configuration de la connexion, mais vous devriez ensuite décrire cette approche davantage.
rozcietrzewiacz
0

Depuis la page de manuel:

Lorsque bash est invoqué en tant que shell de connexion interactif, ou en tant que shell non interactif avec l'option --login, il lit et exécute d'abord les commandes du fichier / etc / profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~ / .bash_profile, ~ / .bash_login et ~ / .profile, dans cet ordre, et lit et exécute les commandes à partir du premier qui existe et est lisible. L'option --noprofile peut être utilisée lorsque le shell est démarré pour inhiber ce comportement.

Lorsqu'un shell de connexion se ferme, bash lit et exécute les commandes du fichier ~ / .bash_logout, s'il existe.

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, bash lit et exécute les commandes depuis /etc/bash.bashrc et ~ / .bashrc, si ces fichiers existent. Cela peut être inhibé en utilisant l'option --norc. L'option --rcfile file forcera bash à lire et exécuter des commandes à partir du fichier au lieu de /etc/bash.bashrc et ~ / .bashrc.

Pour changer la WM de vos utilisateurs: désinstallez kdm / gdm / xdm / slim, configurez la WM dans ~ / .xinitrc et exécutez "startx" depuis votre configuration bash.

Rufo El Magufo
la source