cronjob als user ausführen ?

Xep22

Member
moin, habe gelesen dass man einen Cronjob als user ausführen kann, indem das so aussieht :

* * * * * user1 /home/user1/script.sh

doch das geht bei mir nicht, wird gar nicht ausgeführt... wieso ? Wie führe ich das als user1 aus ? will alle Cronjobs unter root eingetragen lassen.
 
man crontab zeigt dir wie man crontab bedient.

Du kannst die Crontab des Nutzers user1 so bearbeiten: crontab -u user1 -e
 
ja gut, aber in root mit crontab -e in der Zeile den user angeben als den es ausgeführt wird geht nicht ?
 
Nein, die userspezifischen cron-Dateien werden immer unter dem User ausgeführt, dem die Datei gehört. Mit crontab -e wird die Datei des aktuell angemeldeten Users ausgeführt.
Die Angabe eines Users ist nur in der systemweiten /etc/crontab möglich. Diese Datei kann nur mit root-Rechten editiert werden und sollte daher nur für Systemverwalter-Aufgaben genutzt werden, die neben dem root-User z.B. auch unter Dienst-Usern wie dem Apache-User o.ä. laufen können oder sogar müssen.
 
Die Angabe eines Users ist nur in der systemweiten /etc/crontab möglich.
Üblich sind heute dafür ded. Files unter /etc/cron.d/ - die /etc/crontab sollte man idealerweise in Ruhe lassen, da da auch oft die Paketverwaltung ihre Finger im Spiel hat und man dann ggf. bei Updates auf crond oder sonstigen Updates, welche die Maintainer des Systems "für sinnvoll erachten" manuelle Nacharbeit notwendig ist. Selten, aber kommt vor.
 
In der ctrontab eines Nutzers gibt es keinen Nutzernamen, da jeder eine eigene hat.

Sag doch mal, warum musst du in der crontab von root ein Programm des user1 mit root-Rechten starten?
 
Sag doch mal, warum musst du in der crontab von root ein Programm des user1 mit root-Rechten starten?
Tut er doch nicht. Er will es ja als user1 starten.
Interessanter ist eher, warum alle Jobs in einer Crontab haben will - wobei man sich auch da viele Dinge ausdenken kann, bei denen es einem einfacher / übersichtlicher / ... erscheint, alles an einem Fleck zu haben und die User über den Parameter anstatt über eine ded. Crontab zu steuern
 
in root mit crontab -e in der Zeile den user angeben als den es ausgeführt wird geht nicht ?
Nein, es geht nicht.

Sicherlich könntest du in der systemweiten Crontab rumwerkeln (auf eigenes Risiko).
Je nach Linux vorhanden in /etc/crontab oder im Verzeichnis /etc/crontab.d/ die Datei user1 erzeugen und da dann deine gewünschte Zeile hinein.
 
Back
Top