Jak uruchomić skrypt w czasie uruchamiania dla zwykłego użytkownika?

5

Chcę uruchomić skrypt bash podczas uruchamiania w CentOS 6. Dodałem skrypt w /etc/init.d/katalogu, ale wszystkie te skrypty są uruchamiane przez root. Chcę uruchomić skrypt dla dowolnego użytkownika.

Waqas Rana
źródło

Odpowiedzi:

8

Możesz dodać go do swojego crontab w następujący sposób:

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

Jeśli nie jesteś zaznajomiony crontab, oto kilka wskazówek:

  • crontab -l wyświetla bieżące zaplanowane zadania.
  • crontab -e pozwala na edycję.
fedorqui
źródło
wiem jak edytować crontab, ale kiedy edytuję za pomocą crontab -e utworzy plik dla bieżącego użytkownika do / var / spool / cron / jeśli mam tę linię dodaną w pakiecie rpm, to utworzy plik cron dla roota, ponieważ do celów instalacji muszę się zalogować jako root.
Możesz użyć crontab -u <user>(i crontab -l/-e -u <user>), aby skonfigurować crontab dla innych użytkowników.
fedorqui
wspaniały pan !!! jest to najprostszy sposób na automatyczne uruchamianie skryptów startowych. Badałem, ale wszyscy powiedzieli, że musimy skonfigurować /etc/init.d/*** bla bla ... to skomplikowane !!!
Davuz
0

Możesz użyć, suaby usunąć uprawnienia administratora, używając -cpolecenia, aby uruchomić polecenie, takie jak:

# su user -c whoami
  user

Jeśli chcesz, aby określony skrypt zrzucił uprawnienia, możesz po prostu wywołać sam skrypt, su <user> -c <script> -magic-parametergdzie -magic-parametermówi skryptowi, aby zrobił to, co chcesz, jako użytkownik inny niż root.

jbr
źródło
0

Po pierwsze: nie jest to pytanie programistyczne - lepsze miejsce to https://superuser.com/ .

Po drugie: prawdopodobnie używasz Linuksa - ale lepiej jest określić;).

Po trzecie: Uruchamianie skryptów podczas rozruchu jest bardzo niebezpieczne dla bezpieczeństwa systemu. Dlatego jest to dobry powód dla skryptów tylko do rootowania. Tak więc, jeśli mają dostęp root - go używać (jesteś sysadmin, prawda?), Jeśli nie masz dostępu - to chyba lepiej zostawić tak jak jest .. :)

Jeśli twoje pytanie dotyczy zmiany efektywnego UID dla jakiegoś skryptu rc.d, możesz użyć czegoś takiego:

#!/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

więc możesz umieścić swój skrypt w dowolnym miejscu i od skryptu init uruchomi go su.

jm666
źródło