Come eseguire uno script all'avvio per un utente normale?


5

Voglio eseguire uno script bash all'avvio in CentOS 6. Ho aggiunto lo script in /etc/init.d/ directory ma tutti questi script sono eseguiti da root. Voglio eseguire script per qualsiasi utente.

Risposte:


8

Puoi aggiungerlo al tuo crontab in questo modo:

@reboot /bin/bash /dir/of/your/script

Se non hai familiarità con crontab, ecco alcuni suggerimenti:

  • crontab -l elenca i lavori correnti pianificati.
  • crontab -e ti permette di modificarlo.

so come modificare crontab ma quando modifico usando crontab -e creerà il file per l'utente corrente in / var / spool / cron / se ho questa linea aggiunta nel pacchetto rpm allora creerà il file cron per root perché per scopo di installazione devo accedere come root.

Puoi usare crontab -u <user> (e crontab -l/-e -u <user> ) per configurare crontab per altri utenti.
fedorqui

fantastico signore !!! questo è il modo più semplice per eseguire automaticamente gli script di avvio. Avevo studiato ma tutti loro hanno detto che dobbiamo configare /etc/init.d/*** bla bla ... complicato !!!
Davuz

0

Puoi usare su lasciare i privilegi di root usando il -c per eseguire un comando, come:

# su user -c whoami
  user

Se vuoi che uno script specifico lasci i privilegi, puoi semplicemente chiamare lo script stesso con su <user> -c <script> -magic-parameter dove -magic-parameter dice allo script di fare ciò che vuoi che faccia come utente non root.


0

Primo: non è una domanda di programmazione - il posto migliore è https://superuser.com/ .

Secondo: probabilmente stai usando un Linux - ma è meglio specificare;).

Terzo: l'esecuzione degli script all'avvio è molto pericolosa per la sicurezza del sistema. Quindi ecco una buona ragione per gli script di root-only. Quindi, se tu avere accesso root - usalo (sei un amministratore di sistema, giusto?), se non hai accesso - è probabilmente meglio lasciarlo così com'è .. :)

Se la tua domanda riguarda come modificare l'UID efficace per alcuni script rc.d, puoi usare qualcosa come:

#!/bin/bash    

export MYHOME=/path/to/somewhere

case $1 in
    start)   /bin/su <username> $MYHOME/bin/startup.sh ;;
    stop)    /bin/su <username> $MYHOME/bin/shutdown.sh ;;
    restart)
             /bin/su <username> $MYHOME/bin/shutdown.sh
             /bin/su <username> $MYHOME/bin/startup.sh
             ;;
esac
exit 0

così, puoi mettere il tuo script ovunque e da init-script lo eseguirà con su.

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.