Cronjob mit Root-Rechten

Dieses Thema im Forum "SuSE / OpenSuSE" wurde erstellt von HokusPokus, 16.10.2011.

  1. #1 HokusPokus, 16.10.2011
    HokusPokus

    HokusPokus Eroberer

    Dabei seit:
    14.05.2011
    Beiträge:
    56
    Zustimmungen:
    0
    Hallo zusammen.

    Ich habe ein Backup-Skript (Shell-Skript) erstellt, das alle relevanten Daten via ssh auf einen Server lädt. Das Skript wird stündlich ausgeführt.
    Der Login erfolgt mittels rsa-key, der über ssh-add (ssh-agent) hinzugefügt und verwendet wird.
    Soweit so gut.

    Das Problem ist, dass Daten aller User gesichert werden sollen, und somit Leserechte für alle Daten erforderlich sind. Das Skript kann also nicht unter meinem üblichen Usernamen ausgeführt werden, sondern sollte als root ausgeführt werden.
    Deshalb habe ich das Skript in die Crontab von root eingetragen.

    Das Problem: Beim Ausführen als Root wird der rsa-Key nicht geladen, somit ist die Anmeldung auch nicht möglich.
    Ich habe nun schon versucht am Anfang des Skripts den ssh-add-Befehl einzubauen und den ssh-agent zu starten, leider erfolglos. Der Befehl kann offensichtlich mangels geöffneter bash nicht gestartet werden.

    Mir ist nun schleierhaft wie ich das bewerkstelligen soll, ohne die Dateiberechtigungen zu ändern.

    Grüße,

    HokusPokus
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 16.10.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Mahlzeit,

    ssh / scp kennen die Option "-i identity_file" das funktioniert natürlich nur solange der Key nicht mit einem Passwort geschützt ist.

    mfg
    HeadCrash
     
  4. #3 bitmuncher, 16.10.2011
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Code:
    bash -c ssh-add keyfile && scp ...
    Theoretisch sollte das auch funktionieren. Praktisch habe ich es nicht getestet, da ich auch die Lösung von HeadCrash nutzen würde.
     
  5. #4 HokusPokus, 16.10.2011
    HokusPokus

    HokusPokus Eroberer

    Dabei seit:
    14.05.2011
    Beiträge:
    56
    Zustimmungen:
    0
    Die Skriptdatei sieht so aus:

    Code:
    #!/bin/bash
    ssh-agent /bin/bash
    ssh-add /root/.ssh/id_root.rsa
    rsync -av --progress -e ssh -i /root/.ssh/id_root.rsa /Quellverzeichnis Login-Name:/Zielverzeichnis
    echo Synchronisation beendet.
    Das Problem:
    Wenn ich angemeldet bin und der Befehl in meiner Crontab steht, funktioniert das super.
    Wenn ich das aber in die Crontab von root eintrage (der logischerweise nie angemeldet ist), wird das Skript zwar gestartet, die Anmeldung beim entfernten Server ist jedoch nicht möglich, da das Zertifikat nicht gesendet wird.
    Wenn ich dann aber wieder von meinem User-Account aus ein Terminal starte, mich als Root anmelde und das Skript "von Hand" starte, läuft es.

    Als "normaler" User konnte ich das Skript übrigens auch ausführen ohne jedes Mal die ssh-Befehle (Zeilen 2 und 3 des Skripts) einzubauen. Die sind erst drin, seit ich versuche das Skript in root's Crontab einzubauen.
    Bei meinem eigenen Account musste ich die RSA-Datei also nur einmal hinzufügen und den ssh-agent nur einmal starten.

    Wie bekomme ich es also hin, dass das System, respektive der Crontab das Skript ausführen kann, ohne dass theoretisch jemand angemeldet ist?
     
  6. #5 HokusPokus, 12.11.2011
    HokusPokus

    HokusPokus Eroberer

    Dabei seit:
    14.05.2011
    Beiträge:
    56
    Zustimmungen:
    0
    Hat keiner eine Lösung für das Problem?
     
  7. zst

    zst Foren As

    Dabei seit:
    06.09.2006
    Beiträge:
    95
    Zustimmungen:
    0
    Doch!
    Du musst SSH_AGENT_PID und SSH_AUTH_SOCK belegen und exportieren, dann geht es.
    Gruß zst
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Cronjob mit Root-Rechten
Besucher kamen mit folgenden Suchen
  1. crontab root rechte

Die Seite wird geladen...

Cronjob mit Root-Rechten - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Cronjob

    Cronjob: Hallo Bin mir nicht sicher ob dass so Möglich ist... Ich möchte dass ein Job von 02:00 Uhr Nachts bis 03:00 Uhr Nachts NICHT läuft. *...
  3. Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen

    Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen: Hallo, ich habe auf einem Server einen HTTP File-Explorer installiert (AjaXplorer), auf dem User Dateien hochladen und verschicken können....
  4. script wird von cronjob nicht korrekt ausgeführt - Centos 5

    script wird von cronjob nicht korrekt ausgeführt - Centos 5: Guten Morgen, und hallo ins Forum. Ich habe ein Problem mit meinem Sicherungsserver: ich möchte zur täglichen inkrimentellen Sicherung...
  5. cronjob läuft nicht

    cronjob läuft nicht: Hallo zusammen, ich hab zwei Cronjobs auf unserem 1und1 Server angelegt */5 7-18 * * 1-5 /usr/local/bin/php4 .../script.php 30 19-6 * * 1-5...