Jak uruchomić zadanie CRON jako określony użytkownik?

15

Mam kilka poleceń, które chcę wykonać po uruchomieniu komputera. Użytkownik nie powinien się logować ani nic, aby mógł uruchomić.

Znalazłem tę świetną odpowiedź sugerującą crontab ze @rebootsłowem kluczowym, jednak będzie on uruchamiany jako root i chciałbym uruchomić jako konkretny użytkownik stworzony dla tych „usług” (nie rzeczywistych usług systemowych).

W jaki sposób można osiągnąć ten sam efekt z danym użytkownikiem?

Louis
źródło
Spróbuj uruchomić „$ su [nazwa użytkownika] [polecenie]”
LittleByBlue

Odpowiedzi:

26

Możesz utworzyć crontab dla konkretnego użytkownika w następujący sposób:

crontab -u <username> -e

Lub prościej, możesz po prostu uruchomić, crontab -egdy jesteś zalogowany jako ten użytkownik.

Alternatywnie możesz poprzedzić polecenie w swoim crontab (root), sudo -u <username>aby uruchomić polecenie jako określony użytkownik.

kraxor
źródło
Dzięki, nie byłem w stanie sprawić, żeby działał z nimi. Ale teraz widzę, że mogę stworzyć crontab dla każdego. Polecenia skończyły się dobrze jako root z sudo. Nie wiedziałem, że mogę tam użyć sudo (spodziewałem się, że nie powiedzie się oczekiwanie na hasło).
Louis
2
@Louis sudonie wymaga hasła, gdy wywołujesz go jako root. Zasadniczo nie zdobywasz uprawnień, ale je rezygnujesz.
kraxor
1
@kraxor - możesz po prostu uruchomić crontab -e po zalogowaniu się jako ten użytkownik. myślę, że to nie jest poprawne.
bhv,