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.
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.
Odpowiedzi:
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ę.crontab -u <user>
(i crontab -l/-e -u <user>
), aby skonfigurować crontab dla innych użytkowników.
Możesz użyć, su
aby usunąć uprawnienia administratora, używając -c
polecenia, 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-parameter
gdzie -magic-parameter
mówi skryptowi, aby zrobił to, co chcesz, jako użytkownik inny niż root.
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
.