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.


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.


1

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


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.