Shell-Skript nach Erstellung eines neuen Vertrags

  • Guten Tag.
    Ich stehe aktuell vor einer kleinen Herausforderung und habe auch schon über das Kontaktformular um Hilfe gebeten. Leider habe ich jedoch bis heute keine Antwort erhalten.


    Da es kein mir bekanntes Feature ist, habe ich es in diese Kategorie des Forums eingereiht.


    Folgendes Szenario:
    Einer meiner Kunden hätte gerne SSH Zugriff auf seinen managed Server, was ja an sich kein Problem darstellt. Nun benötigt er jedoch für diverse Anwendungen den Zugriff via SSH Keys und somit Zugriff auf die authorized_keys Datei im .ssh Ordner seines Home-Verzeichnises.
    Dieses Verzeichnis existiert standardmäßig leider nicht und muss für jeden der vielen Verträge manuell angelegt und im weiteren Verlauf mit passenden Rechten angepasst werden.


    Nun zur Frage:
    Gibt es eine Möglichkeit die mkdir und chown Befehle beim Erstellen des Vertrags zu automatisieren?


    Mit freundlichen Grüßen,
    Alex

  • So etwas lässt sich über die Lua-API realisieren. Legen Sie eine Datei namens /usr/lib/liveconfig/lua/custom.lua mit etwa folgendem Inhalt an:



    Danach LiveConfig neu starten (damit das Lua-Script geladen wird) und die /var/log/liveconfig/liveconfig.log auf eventuelle Fehlermeldungen prüfen.


    Das o.g. Script ist "from scratch", keine Garantie auf syntaktische Korrektheit.

    Einmal editiert, zuletzt von kk () aus folgendem Grund: LC.addUser -> LC.users.addUser !

  • Verstehe ich es richtig, dass dies auch auf einem einzelnen LiveConfig Host (lcclient) angewendet werden kann und andere Systeme davon nicht betroffen sind?


    Wenn ja, müsste ich dem Script nun noch irgendwie den Vertragsnamen übergeben, damit dieser den .ssh Ordner im richtigen Home-Verzeichnis anlegen kann, richtig?


    Leider habe ich bis dato keinerlei Erfahrungen mit LUA.


    Mit freundlichen Grüßen,
    Alex

  • Handelt es sich um ein Einzel- oder Multi-Server-Setup?
    Die "custom.lua" müssen Sie auf dem Server anlegen, auf dem auch die Webspaces liegen. Falls da ein LiveConfig-Client läuft, müssen Sie diesen neu starten damit das Script geladen wird.
    lclua finden Sie unter /usr/lib/liveconfig/lclua

  • Ich habe die Funktion bzw. den Aufruf nun mittels LC.execute in die users.lua geschrieben.
    Dort funktioniert sie nun wie gewünscht.


    Dann dürfte die vertauschte Klasse wohl genau der Fehler gewesen sein. Danke für die Korrektur. :)


    Mit freundlichen Grüßen,
    Alex

  • Ich habe die Funktion bzw. den Aufruf nun mittels LC.execute in die users.lua geschrieben.


    Das ist nicht so praktisch, da die users.lua mit jedem LiveConfig-Update überschrieben wird.
    Die "custom.lua" wird nicht angefasst, daher ist das der bevorzugte Weg.


    Demnächst wird es separate "Hooks" für eigene Aktionen geben, was das Umbiegen von Funktionen dann ersetzt.

  • Wurde soeben geändert und funktioniert tadellos.


    http://imagr.eu/up/0GZ3x_Bilds…016-08-25_um_20.26.56.png
    http://imagr.eu/up/qCEOF_Bilds…016-08-25_um_20.27.40.png
    http://imagr.eu/up/FBrm5_Bilds…016-08-25_um_20.28.08.png



    Bash
    #!/bin/bash
    
    
    user="${1}"
    home="${2}"
    
    
    mkdir -p ${home}/.ssh/
    echo '# place your ssh keys here' > ${home}/.ssh/authorized_keys
    chown -R ${user}:${user} ${home}/.ssh/


    PS: Nicht vergessen dem Shell Script executable Rechte zu geben. (chmod +x script.sh)


    Mit freundlichen Grüßen,
    Alex

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!