• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] cron-job mit user-rechten

Hi,
zZt sieht es hier so aus, daß in /etc/cron.hourly|daily usw abgelegte Scripte, auch wenn sie user gehören, doch mit root-rechten ausgeführt werden.
Also was ich meine ist:
Code:
touch /home/tom/Desktop/testdatei
wird root gehören, selbst wenn das ausführende Script mir (user) gehört.
Birgt das nicht Risiken?
und wie kann ich das ändern?
tom
 
A

Anonymous

Gast
OsunSeyi schrieb:
Birgt das nicht Risiken?
wenn du nicht über die Usercrontab gehst, so wie es admine zeigt :schockiert: . Wenn dort unterhalb von /etc solche crontab Scripte sind, die ein normaler User beschreiben kann, dann ist das genauso als wenn du das Rootpasswort auf einem Zettel unter der Tastatur aufbewahrst. ;) Solange du alleine die Tastatur anfasst und nicht am Netz angeschlossen bis, ist es noch einigermaßen sicher.
Unterhalb von /etc darf sich normalerweise nichts befinden was von normalen Usern beschreibbar ist.

Zur Kontrolle:
Code:
find /etc -type f -perm /022 -ls
find /etc -type d -perm /002 -ls
find /etc ! -user root -ls
Der ersten beiden Befehl sollte am Besten gar keine Ausgabe bringen und der 3 Befehl nur ganz wenige Verzeichnisse und eventuell ein paar ganz wenige Dateien die dann allerdings keinem normalem User, sondern nur einem Systemuser gehören sollten, mit deren Kennung man sich nicht am System anmelden kann.

robi
 
Vielen Dank,
..endlich mal eine klare Auskunft betreff´s der Betriebssicherheit!
Da werde ich wohl das eine oder andere noch ändern müssen...
tom
 
Ok, also nochmal...
Zunächst gestehe ich, daß es sich nicht um ein SuSE, sondern um Slackware handelt (bin halt so gerne hier im Forum, und maile auch konkret von SuSE aus, tröstlich oder? Die Unterschiede sollten doch nicht allzu groß sein.)
Jedenfalls:
Code:
crontab -e tom
ausgeführt, eine neue Crontab 'tom' wurde erfolgreich angelegt, in diese wurde folgendes eingetragen:
Code:
 */1 * * * *    /bin/touch /home/tom/Desktop/test
und testweise auch für user
 */1 * * * *   /usr/bin/touch /home/tom/Desktop/test
und siehe da: nichts passiert.
Was muss man denn unternehmen, um das zu ändern?
Muß ich (wie bei 'visudo') by force mit dem angebotenen Editor arbeiten?
Ein gleicher Eintrag in die ebenfalls vorhandene Datei 'root' hat jedenfalls ein minütliches Anlegen der Datei 'test' bewirkt, wie gewünscht.
 
A

Anonymous

Gast
Noch mal ganz langsam, mach das mal genauso nach.

1. Du meldest dich als ein normaler User auf der Konsole an.

2. Auf den meisten Systemen sollte jetzt folgender Befehl nur eine Leerzeile ausgeben
Code:
echo $VISUAL $EDITOR
3. dort gibst du jetzt ein
Code:
crontab -e
nomalerweise solltest du dich jetzt im vi oder vim befinden. Dort gehst du mit dem Cursor auf die Letzte Zeile und "A" gefolgt von einem "Enter" trägst du jetzt deine Zeile ein und speicherst das ganze jetzt "ESC-Taste :wq" ab.
Ich denke mal, hier solltest du jetzt auch eine Bestätigung auf der Konsole dafür sehen, das dort was geändert oder eingetragen wurde
(Wenn du mit diesen Beschreibungen nicht klar kommst, dann darfst du eine halbe Stunde nachsitzen ;)

4. du überprüftst deine Crontabelle jetzt mit
Code:
crontab -l
Hier solltest du dann deine geänderte Crontabelle wieder sehen.

Wenn jetzt dein Cronjob immer noch nicht funktioniert dann mal folgendes hier posten.
mal als root folgenden Befehl: (USER ist dabei dein User für den du den Cronjob erstellt hast)
Code:
grep cron /var/log/messages | grep USER | tail -15

robi
 
So sieht´s aus:
Code:
~ | crontab -e
skipping 6 old session files
reading /var/spool/cron/crontab.3265

wrote /var/spool/cron/crontab.3265, 25 lines, 661 chars
~ | crontab -l

###################### CRONTAB TOM #################################

#### MINÜTLICH:
*/1 * * * *    /home/tom/DAT/D/BIN/Cron/Cron -minutely 1> /dev/null

#### STÜNDLICH UM EINE MINUTE NACH:
1 * * * *      /home/tom/DAT/D/BIN/Cron/Cron -hourly   1> /dev/null

#### TÄGLICH UM 18 UHR:
0 18 * * *     /home/tom/DAT/D/BIN/Cron/Cron -daily    1> /dev/null

#### MONTAGS UM 18 UHR 1:
1 18 * * 0     /home/tom/DAT/D/BIN/Cron/Cron -weekly   1> /dev/null

#### AM ERSTEN DES MONATS UM 18 UHR 2:
2 18 1 * *     /home/tom/DAT/D/BIN/Cron/Cron -monthly  1> /dev/null

####################################################################

Vor der Zeitangabe darf kein Leerzeichen stehen:
Also so nicht:
Code:
[:space:]*/1 * * * *
...hat lange gedauert, das rauszufinden ;-)
$HOME ist dann bekannt, aber $PATH und "export DISPLAY=:0" für graphisches wie Xdialog muß gesetzt werden.
Ich hoffe, das stimmt jetzt so alles.
Angelegte Dateien haben nun auch als Eigentümer "user".
vielen Dank!!!
 
Oben