PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cronjob nicht als root ausführen???



jancarsten
27-04-2005, 15:41
Hallo!

Ich bin grad dabei mir ein kleines backupscript zu schreiben. Dieses Backupscript
soll, wenn es fertig ist als cronjob laufen. Wie stellle ich es jetzt an , dass das Script nur all xyz user ausgeführt wird und nicht als root?

peschmae
27-04-2005, 17:28
In /etc/crontab hats eine Spalte für den User - und ausserdem hat eh jeder User eine eigene Crontab.

Einfach crontab -e als der entsprechende User ausführen und das Ding dort eintragen.

MfG Peschmä

Joghurt
28-04-2005, 10:19
Oder als erste Zeile in das Skript
su BENUTZER
eintragen. Geht dann natürlich nur als root aufzurufen.

peschmae
28-04-2005, 15:41
Das geht bei mir aber dann nicht. Das script bricht beim su ab.

MfG Peschmä

Joghurt
28-04-2005, 17:31
Oops. Mybad... So muss es auch heißen:

if [ `id -u` = 0 ]; then
# wir sind root...
exec su BENUTZER $0
# bis hier kommen wir nicht, aber sicher ist sicher
exit
fi
# Ab hier wird das Skript als BENUTZER ausgeführt (zumindest, wenn es als root gestartet wurde)bash nutzer können `id -u` auch durch $UID ersetzen. In diesem Falle natürlich "#!/bin/bash" statt "#!/bin/sh" schreiben.

Hans-Georg Normann
28-04-2005, 19:26
Noch eine Variante:

ich lege mir grundsätzlich die crontabdateien nochmals separat je user ab. (xyz_crontab). Gestartet wird das ganze dann so:
crontab -u xyz xyz_crontab
#nachsehen ob's angekommen ist
crontab -l -u xyzMuss man nicht unbedingt so machen, ich persönlich finde es gut.

Hans