Script (braucht root-rechte) automatisch starten

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von sideshow, 19.12.2005.

  1. sideshow

    sideshow Thread Starter MacUser Mitglied

    Beiträge:
    92
    Zustimmungen:
    0
    MacUser seit:
    24.01.2005
    schönen guten morgen,

    ich hätte da eine kleine frage. und zwar habe ich ein schönes backup-shell-script im internet gefunden. das funktioniert auch ganz wunderbar!

    so kann ich es händisch im terminal ausführen:
    sudo backup.sh /pfad/zum/backup/ordner

    nach eingabe meines admin-passwortes gehts auch schon los und meine gesamte festplatte wird mit einhaltung der benutzerrechte in den backup ordner kopiert.

    nun würde ich das gerne mittels cronjob jede woche einmal die nacht laufen lassen. meine frage nun: wie löse ich das mit der passwort eingabe? gibts da irgendwie nen weg?

    das script läuft als benutzer root, gruppe wheel - muss ich das evtl. nur ändern?

    im script selbst steht diese if anweisung drin:
    Code:
    if [ $(id -u) -ne 0 ]; then
            echo "$0: you must be root to use this command"
            exit 1
    fi
    könnte es sein, das ich diese if anweisung einfach rausnehmen muss und dass es dann ohne root läuft? sorry für die blöde fragerei, aber ich beschäftige mich noch nicht allzu lange mit der shell unter osx!

    danke im voraus und viele grüße!
     
  2. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    Das Problem ist, dass Apple aus Sicherheitsgründen Scripts die root-Rechte per setuid bekommen seit 10.4 nicht mehr mit Root Rechten ausführt.

    Aber es gibt Hoffung: Trag das script doch in die cronjobs von root ein, dann wird es auch mit root rechten gestartet.

    Gruss

    Alex
     
  3. sideshow

    sideshow Thread Starter MacUser Mitglied

    Beiträge:
    92
    Zustimmungen:
    0
    MacUser seit:
    24.01.2005
    ok, das klingt einfach!

    jetzt hab ich nur ein kleines problemchen...
    ich muss dem script ja noch den pfad für den backupordner übergen. kann ich das beim scriptaufruf im cronjob machen (ich mach es ehrlich gesagt mit cronnix), oder sollte ich das lieber in das script selbst übernehmen?
     
  4. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    Würde ich beim Aufruf im der cron liste machen

    Siehe auch crontab (5)

    Gruss

    Alex
     
  5. sideshow

    sideshow Thread Starter MacUser Mitglied

    Beiträge:
    92
    Zustimmungen:
    0
    MacUser seit:
    24.01.2005
    läuft super! vielen dank!!! banana
     
  6. kapabel

    kapabel MacUser Mitglied

    Beiträge:
    224
    Zustimmungen:
    1
    MacUser seit:
    06.11.2008
    ok, ich grabe das Thema nochmals aus, weil ich das selbe Problem habe:

    Ich arbeite jetzt auf OS X, 10.4.11

    Ich muss ein Script schreiben, welches mir einen Ordner löscht, einen anderen herkopiert und mit chown die Rechte ändert.

    Nun ist es so, dass ich in der Shell alles ausprobieren kann:

    rm -r /Users/benutzer
    --> Permission denied

    sudo rm -r /Users/benutzer
    - Ok

    Mit chown habe ich das selbe Problem.

    Leider kann ich kein Passwort im Script eingeben... Kann mir jemand helfen wie ich das umgehen kann?

    Ich würde mich sehr auf eure Hilfe freuen,
    lg, kapabel
     
  7. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Du könntest das Script als Admin Benutzer mit 'sudo' aufrufen, das Passwort eingeben und gut ist.
    Alternativ könntest Du — falls das nicht ausreichend ist — das sudoers file erweitern.
    Dazu musst Du Dich aber in die Materie einlesen:
    man sudoers
     
  8. kapabel

    kapabel MacUser Mitglied

    Beiträge:
    224
    Zustimmungen:
    1
    MacUser seit:
    06.11.2008
    das script läuft immer ab, wenn der bnutzer den rechner neu startet...
     
  9. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Bei jedem Bootvorgang?

    Dann könntest Du mit einem Launchd Job arbeiten.
    Damit kann man Skripte mit Rootrechten beim Rechnerstart ausführen lassen.

    Details:
    man launchctl
    man launchd.plist
     
  10. Ischi

    Ischi MacUser Mitglied

    Beiträge:
    1.105
    Zustimmungen:
    28
    MacUser seit:
    01.05.2005
    In dem Fall kannst du einfach ein StarupItem einrichten was das Script ausführt, ich mach das gleiche um für Wireshark Permission zu setzten also schau entwerder mal hier http://dirtylittlecoder.com/wordpress/2009/03/12/get-wireshark-to-recognize-the-networkinterfaces-on-macosx/ (ist meine Wireshark Anleitung) aber das Script ist austauschbar. Oder bei Apple selber http://developer.apple.com/DOCUMENT...al/BPSystemStartup/Articles/StartupItems.html
     
Die Seite wird geladen...