Programme in init.d mit user rechten starten



  • Hallo,

    ich starte verschiedene Programme mittels eines Scripts im init.d Verzeichnis. Diese holen Messwerte von verschiedenen Stellen und legen diese in einer Datei ab. Somit hat die Datei nach dem erzeugen root-Rechte.

    Jetzt kann ich mit meinen dynamischen Webseiten mittels perl nicht darauf zugreifen, da diese von der HTML-Seite gestartet werden und keine root-Rechte haben.
    Nun möchte ich das die Programme in meinem Script nicht mit root-Rechten sondern mit user-Rechten gestartet werden.

    Ein "sudo -u xy /usr/bin/programm" funktioniert auf der Konsole. jedoch nicht in meinem Script...das so lautet.
    Ich habe eine Liste mit Programmen die ich nacheinander starte.

    for (( s=0; s < (${#programme[*]}); s++));
    do
    echo -n "Starting ${programme[s]}"
    startproc "sudo -u userx ${programme[s]}"
    rc_status -v
    done

    Leider funktioniert dies nicht. Ohne "sudo -u userx" funktioniert es.
    Bitte um Hilfe, es wäre dringend 😃

    worst_case



  • mach mit su - <username> -c "<command>"



  • sudo wird benutzt um superuser rechte zu erlangen ([ super user do ], wenn es denn wirklich so heisst).
    su (switch user) kann zu jedem user wechseln den es gibt.

    es ist übrigens sinnvoll eine eigene gruppe anzulegen wie es zb. verschiedene serverprogramme machen (http, ftp und ähnliches).
    diese laufen mit eingeschränkten rechten. sie switchen um. d.h. nach dem start aus init.d die als root gestartet werden, schalten sie um zu xyz mit eingeschränkten rechten. dadurch können sicherheitslücken nicht so einfach ausgenutzt werden, weil man dann keine root-rechte bekommt.

    für client-server anwendungen wird glaube ich auch so eine vorgehensweise vorgeschlagen.

    ich lasse mich aber auch gerne eines besseren belehren.



  • qdurchzweiistqmalnullfunf schrieb:

    sudo wird benutzt um superuser rechte zu erlangen ([ super user do ], wenn es denn wirklich so heisst).
    su (switch user) kann zu jedem user wechseln den es gibt.

    mit sudo kannst du jeden beliebigen Benutzer werden

    ~ $ sudo -u root whoami
    root
    ~ $ sudo -u $(whoami) whoami
    yanezp
    


  • Danke euch beiden

    genau was ich wollte.

    Gruß


Anmelden zum Antworten