Come eseguire automaticamente uno script su login gdm per tutti gli utenti?


8

Quale file devo modificare per eseguire alcune istruzioni quando un utente accede tramite gdm?

Ho provato /etc/bashrcma questo viene eseguito solo quando si avvia bash (e ogni volta che un xterm è aperto). Vorrei eseguire qualcosa solo una volta quando l'utente accede.

Quello che voglio fare è "ripristinare" alcune preferenze dell'utente ogni volta che l'utente accede (incluso il gestore delle finestre), quindi lo script dovrebbe essere eseguito prima che WM sia inizializzato.


4
Perché vuoi infastidire i tuoi utenti in quel modo?
Keith,

Risposte:


8

La soluzione che sembra funzionare meglio per me è la modifica /etc/gdm/PostLogin/Default. Questo viene eseguito subito dopo che l'utente ha effettuato l'accesso con gdm. Proprio quello che volevo.


1

Su Debian e derivati ​​puoi modificare /etc/profile, non pensare che sia universale, comunque.


Questo è solo per gli accessi alla shell - e l'OP ha indicato che non era interessato a tale soluzione.
rozcietrzewiacz,

1
@rozcietrzewiacz: questo funziona anche per gli accessi GDM, perché legge /etc/profile(vedi /etc/gdm/Xsession). Non esiste una regola generale per tutti i DM, credo.
enzotib,

Hm ... Forse lo è, non lo so - ma hai controllato quando altro è di provenienza? Ovviamente si può fare qualche test sull'impostazione di login, ma poi si dovrebbe descrivere di più questo approccio.
rozcietrzewiacz,

0

Dalla pagina man:

Quando bash viene invocato come shell di login interattiva o come shell non interattiva con l'opzione --login, legge prima ed esegue i comandi dal file / etc / profile, se quel file esiste. Dopo aver letto quel file, cerca ~ / .bash_profile, ~ / .bash_login e ~ / .profile, in quell'ordine, e legge ed esegue i comandi dal primo che esiste ed è leggibile. L'opzione --noprofile può essere usata all'avvio della shell per inibire questo comportamento.

Quando esce una shell di login, bash legge ed esegue i comandi dal file ~ / .bash_logout, se esiste.

Quando viene avviata una shell interattiva che non è una shell di accesso, bash legge ed esegue i comandi da /etc/bash.bashrc e ~ / .bashrc, se esistono questi file. Questo può essere inibito usando l'opzione --norc. L'opzione --rcfile forzerà bash a leggere ed eseguire comandi dal file anziché /etc/bash.bashrc e ~ / .bashrc.

Per cambiare il WM dei tuoi utenti: disinstalla kdm / gdm / xdm / slim, imposta il WM in ~ / .xinitrc ed esegui "startx" dalla tua configurazione di bash.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.