Scriptaufruf mit root Rechten.



  • Evolu schrieb:

    Ja das mit su -c habe ich auch schon getestet. Leider funktioniert das nicht so wie es soll.
    [...]

    Aber das ist ja momentan ja nur ein dienst ... wir können uns nicht alle Dienste anschauen. Aber vielleicht fällt dir was generelles auf.

    Mir fällt jetzt spontan nichts auf. Die Pfad-Variable wird in dem Skript ja nochmals gesetzt.

    Was mir halt aufgefallen ist, ist der unterschied zwischen su und SUID-Rechten. Da scheint noch was zu tun zu sein. Du kannst dir die Quellen von su anschauen und gucken, wie es funktioniert. Damit sollte dein Problem gelöst sein.

    Evolu schrieb:

    PS: Ich habe jetzt mal Parallel sudo herüberkopiert. Und der verlangt auch eine Passwortabfrage nicht von root sondern vom User selber. Ich muss ehrlich sagen, dass es jetzt viele unbenutzte Dateien rumliegen aber das mach ich später ...
    Wenn man sudo richtig einstellt, umgehe ich mein Problem einfach ... aber das funktioniert auch nicht so richtig.

    sudo fragt nach dem Passwort, wenn du in sudo eingestellt hast, dass es fragen soll. Das kannst du auch ausschalten.



  • Du kannst dir die Quellen von su anschauen

    Meinst du den Quelltext von su?

    Zu sudo (da kenne ich mich eigentlich nicht aus):
    Kein ja sein das ich mich irre, aber bei mir habe ich es so eingestellt:

    visudo:
    reconn RECONNECTNETZ=(root) NOPASSWD:/etc/init.d/dhcp3-server

    beim ausführen kommt keine nachfrage von root passwort, aber dafür die nachfrage den users reconn.

    Fehlermeldung:

    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
        #1) Respect the privacy of others.
        #2) Think before you type.
        #3) With great power comes great responsibility.
    
    Sorry, try again.
    Sorry, try again.
    Sorry, try again.
    sudo: 3 incorrect password attempts
    

    Kann man die Abfrage des user-Passwortes auch abschalten?



  • Du hast eingestellt, dass der Nutzer

    $ sudo /etc/init.d/dhcp3-server
    

    aufrufen kann. Aber das willst du nicht. Du willst ja, dass er

    $ sudo /etc/init.d/dhcp3-server start
    

    aufrufen kann. Das ist so das erste, was mir auffällt.



  • Irgendwo habe ich gelesen das man bei kleine Parameterangabe alle Parameter nutzen kann.
    Oder etwa nicht?



  • Ich glaub es ja nicht ... mit sudo habe ich das jetzt hinbekommen.
    Ich darf nur nicht denn Host einschränken.

    Das heißt es muss so aussehen:

    visudo:
    reconn ALL=(root) NOPASSWD:/etc/init.d/dhcp3-server

    Somit kommt auch beim User keine Passwortabfrage .. damit kann ich leben.



  • Übelste mehrfachpost ich weiß ..
    aber ich wollte mich nur noch bei allen Bedanken. Vor allem bei ProgChild für sein Durchhaltevermögen.
    Sollte euch aber noch was einfallen, dann lasst es mich hören. Ist ja nicht so das ich nie wieder hier vorbeischaue.



  • Evolu schrieb:

    Übelste mehrfachpost ich weiß ..
    aber ich wollte mich nur noch bei allen Bedanken. Vor allem bei ProgChild für sein Durchhaltevermögen.
    Sollte euch aber noch was einfallen, dann lasst es mich hören. Ist ja nicht so das ich nie wieder hier vorbeischaue.

    Mir ist noch folgendes eingefallen. Kann es sein, dass noch bestimmte Umgebungsvariablen gesetzt werden müssen, damit das funktioniert?



  • ProgChild schrieb:

    Evolu schrieb:

    Kompiliere und setzt die Rechte dementsprechend:
    -rws---r-x 1 root root

    Das Sticky-Bit ist dafür verantwortlich das ich das mit root-rechten ausführe. Wie wir wissen funktioniert Sticky-Bit nur mit Binärdateien (um es mit Userrechten auszuführen). Das macht die Fehlermeldung um so komischer:
    sh: line 1: /etc/init.d/dhcpd: Permission denied

    ...

    Aber das Sticky-Bit funktioniert auch für Shell-Skripte. Deine Aussage ist diesbezüglich einfach falsch. Die Datei muss nur ausführbar sein. Aber Shell-Skripte mit root-Rechten sind sehr gefährlich.

    verwechselt ihr da nicht Sticky-Bit mit setuid bit? setuid geht nämlich mit Skripten nicht (jedenfalls unter GNU/Linux)


Anmelden zum Antworten