User innerhalb eines Shellscriptes ändern



  • Hallo Leute.

    Ich will ein paar Maintenance Sachen machen und das remote auf die Clients pushen. Das Problem ist nur, dass der Code im User Kontext laufen muss.

    Ich dachte mir folgendes:
    Das script wird als root ausgeführt, sucht sich alle User raus und switcht per su zu jedem User, führt den Maintenance Code aus, logt sich wieder aus und beginnt beim nächsten User wieder von vorne.

    Das Problem dabei, ein
    su "$user"
    startet eine neue Shell und mein Script wird nicht in die neue Shell mitübernommen.

    Ich könnte über
    su "$user" -c "/path/to/myscript"

    natürlich den jeweiligen Code in einer eigenen Datei auslagern - aber das ist etwas unpraktisch bei den von uns verwendeten Tools. Am liebsten wäre mir nur eine Datei zu haben...

    Gibt es da eine Möglichkeit?

    Als System verwenden wir OS X 10.5 und 10.6 - ist aber nichts anderes als ein BSD mit bash.


  • Mod

    Kannst du da nicht mit here-Tags dein Shellscript an die Subshell weiterleiten? Ich habe es jetzt nicht ausprobiert, aber irgendwie sollte sich das hinbiegen lassen.

    edit: Ja, geht so wie erwartet:

    #!/bin/bash
    whoami
    sudo su -c /bin/bash<<EOF
     whoami
    EOF
    

    Ausgabe:

    seppj
    root
    


  • Perfekt.
    Danke.


Anmelden zum Antworten