Script di init per utente


6

C'è uno script (più simile a un comando) che vorrei essere eseguito su una base di login per utente. Ho sentito parlare di init.d script ma quelli richiedono i permessi di root e non sono personalizzabili per utente (AFAIK). In poche parole, sto cercando qualcosa sulla falsariga di .bashrc che verrebbe eseguito solo una volta per accesso utente.

Per descrivere un po 'lo scenario, attualmente utilizzo un sistema operativo guest Ubuntu su un host Windows (emulazione per gentile concessione di VirtualBox). Ogni volta che accedo al mio SO guest, ho bisogno di un mount comando da eseguire che monterà le mie cartelle condivise in una directory comune nella home directory dell'utente.


non mount richiede root o almeno una modifica di configurazione di root per rendere i volumi montabili da utenti non root?
Rich Homolka

1
@Rich: Effettivamente lo fa; Non mi dispiace vedere una richiesta di password quando accendo il mio guscio. È solo che il mount il comando è piuttosto complicato e non volevo impegnarmi ulteriormente nell'esecuzione di uno script di supporto.
sasuke

Risposte:


1

puoi provare le diverse opzioni qui: http://library.gnome.org/admin/gdm/stable/configuration.html.en , probabilmente vuoi l'opzione PostLogin


1
Il problema qui è che tutte queste opzioni richiedono una modifica nei file / etc / * che richiedono i privilegi di root. Non c'è alcun file che posso creare / modificare per garantire che uno script venga eseguito solo quando io accedi al sistema? Qualcosa di simile a .bashrc che viene invocato su ogni sessione bash ed è privato all'utente?
sasuke

ok, ho perso i diritti di root, ovviamente. Puoi provare a scrivere un file .xinitrc o .xsession: acm.uiuc.edu/workshops/cool_unix/xinitrc.html
natxo asenjo

no, anche questo ha vinto il lavoro. Quello che funzionerà è aggiungere il tuo script alle applicazioni di avvio (a condizione che Ubuntu abbia una cosa del genere). In fedora arrivi da system - & gt; preferenze - & gt; applicazioni di starup. Qui c'è un link ubuntu: help.ubuntu.com/community/AddingProgramToSessionStartup
natxo asenjo

Penso che sia strano che non ci sia uno standard per questo in Linux. Tutti hanno bisogno di un metodo diverso in base alla distribuzione? O forse c'è uno standard?
AlikElzin-kilaka

5

La posizione standard per i comandi da eseguire quando si accede è ~/.profile. Ci sono alcuni ambienti in cui questo file viene saltato quando si accede direttamente in modalità grafica, ma con Ubuntu 10.04, ~/.profile viene letto dagli script di login gdm, kdm, lxdm e xdm (oltre a quando si effettua il login su una console di testo o su ssh).

Se hai un ~/.bash_profile, il tuo ~/.profile a volte verrà saltato. È meglio mettere solo le seguenti due linee nel tuo ~/.bash_profile:

. ~/.profile
. ~/.bashrc

Quindi inserire le azioni di login in ~/.profile e personalizzazioni shell in ~/.bashrc.


Hai risolto un viaggio di 2 giorni sul motivo per cui .bashrc e .profile venivano ignorati all'accesso. L'altro amministratore ha creato un file .bash_profile alla volta - dopo averlo cancellato e relegato, tutto ha funzionato di nuovo meravigliosamente! Woot!
Dooley_labs

1

Forse non ho afferrato tutte le sottigliezze, ma penso che puoi farlo se stai usando Ubuntu, immagino che potresti semplicemente scrivere uno script per ogni utente (o uno script con regole diverse a seconda di 'whoami') e , se stanno usando gnome (come impostazione predefinita per Ubuntu), aggiungi quello script alle applicazioni di avvio.


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.