Shell: ZSH statt Bash installieren

  • Hallo,

    Wenn ich meinen Server per ssh ansteuere, lande ich standardmäßig in der Bash-Shell. Gibt es eine Möglichkeit, hier auf ZSH zu wechseln?

    Da der Server chrooted ist, kann ich ja keine Software selbst installieren und zsh scheint auch nicht vorinstalliert zu sein.

    Würde mich über jeden Tipp freuen :)

  • Bist du hier im richtigen Forum? Wenn es dir wirklich um einen vServer geht und nicht etwa ein Webhosting-Paket, dann ist der Server genau so installiert, wie du ihn eben installiert hast. Du hast da ja vollen root-Zugriff.

  • Bist du hier im richtigen Forum? Wenn es dir wirklich um einen vServer geht und nicht etwa ein Webhosting-Paket, dann ist der Server genau so installiert, wie du ihn eben installiert hast. Du hast da ja vollen root-Zugriff.

    Sieht ganz so aus, als wäre ich hier falsch... sorry, bin neu in dieser ganzen Materie und hab angenommen, hinter dem Webhosting liegt auch ein vServer.

  • Da der Server chrooted ist, kann ich ja keine Software selbst installieren […]

    Theoretisch kannst Du ins Chroot schon eigene Binaries laden und ausführen. Die benötigten Libs müssen aber entweder bereits vorhanden oder im Binary integriert sein. Im Zweifel einfach mit einem kopierten zsh-Binary ausprobieren oder eine selbst kompilierte Version (für amd64) hochladen. ;)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

    Gefällt mir 2
  • Also der Aufruf mit einem einfach kopierten zsh-Binary endet bei mir im Webhosting so:

    Code
    bash-4.4$ zsh --version
    zsh: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
  • Test auf einem Webhosting Paket:


    Verzeichnis für die zsh bin, man und share erstellt: mkdir binzsh (der ~/bin Ordner in Deiner chroot Umgebung gehört root und kann nicht verändert werden)

    Runtergeladen mit: wget https://github.com/romkatv/zsh-bin/releases/download/v6.1.0/zsh-5.8-linux-x86_64.tar.gz nach ~/binzsh
    Entpackt mit: tar xzvfs zsh-5.8-linux-x86_64.tar.gz in ~/binzsh

    Wenn man es direkt nach dem Login haben möchte einfach in der ~/.bash_profile eintragen: nano ~/.bash_profile
    Inhalt für die ~/.bash_profile
    ~/binzsh/bin/zsh

    Test des statischen Binary: ✔️

    Code
    bash-4.4$ ./zsh --version
    zsh 5.8 (x86_64-pc-linux-musl)

    WH8000 SE 🥚 20 | WH1000 SE OST22 | WH1000 SE OST23 | WH1000 SE OST24 | WH 🥚🧶🥛🐖 | 🦆 VPS 200 🇺🇦🕊️

    Einmal editiert, zuletzt von Copro () aus folgendem Grund: mkdir und etwas mehr bla

    Gefällt mir 5
  • Okay, das sieht sehr vielversprechend aus ... nur habe ich jetzt glaube ich etwas kaputt gemacht :pinch:


    Ich war beim Kopieren der Befehle etwas vorschnell und habe wget und tar aus Versehen in ~ ausgeführt. Das hat wohl den existenten Ordner ~/bin überschrieben (War da vorher einer? Eigentlich fehlen mir ja die Rechte zum Überschreiben? :/). Hab dann die zsh bin, man und share entfernt und es in ~/binzsh neu gemacht.


    Jetzt enden meine SSH-Verbindungsversuche allerdings so:

    Code
    execv("/bin/bash") failed
    system error: No such file or directory
    Connection to domain.com closed.


    UPDATE:

    Ich hab über das Webhosting Control Panel die ~/usr/bin/bash Binary in ~/bin/bash kopiert. Jetzt komme ich per SSH wieder drauf und auch zsh funktioniert wie oben beschrieben, danke!

    Jetzt frage ich mich nur, ob mir noch mehr in ~/bin fehlt und ich wegen dieser Aktion früher oder später auf Probleme treffe.

  • Also in einem eher unbenutzten Webhosting von mir, deshalb denke ich mal, das ist der reine Standardinhalt, sieht ~/bin so aus:


    Edit: /bin ist letztlich auch nur ein symbolischer Link auf /usr/bin

  • Also in einem eher unbenutzten Webhosting von mir, deshalb denke ich mal, das ist der reine Standardinhalt, sieht ~/bin so aus:

    Das sieht identisch zu meinem ~/usr/bin aus. Also denke ich, wenn ich von da alles kopiere oder symlinke, sollte das wieder passen.

    Oder ich mache nichts weiter, beide Verzeichnisse sind ja in meinem PATH.

  • ALso bei mir ist das "Verzeichnis" /bin kein Verzeichnis, sondern eben ein symbolischer Link auf /usr/bin. Also nicht die einzelnen Dateien symlinken oder kopieren. Für eigene Binaries habe ich in einigen Webhostings /user/bin eingerichtet und in den Pfad aufgenommen.

  • Ich verweise an dieser Stelle einmal auf mein Repo: https://github.com/froonix/webhosting-mods


    Da kann man sehen, wie man sich ein eigenes $HOME bastelt, siehe .profile Datei, die ursprünglich von perryflynn ist. Ist zwar nicht mit ZSH getestet, aber das Prinzip bleibt gleich.


    Und die Standardordner wie /bin, /usr und /var kann man mangels Rechten normalerweise eh nicht zerstören?

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

    Gefällt mir 1
  • Was meinst du mit "nach außen"? Das Zielverzeichnis /usr/bin ( ~/usr/bin) liegt innerhalb der chroot.


    Edit: Bzw. würde das dann tatsächlich so angezeigt werden?

    Code
    bash-5.0$ ls -l /bin
    lrwxrwxrwx 257 root root 7 Apr 19  2021 /bin -> usr/bin
  • ALso bei mir ist das "Verzeichnis" /bin kein Verzeichnis, sondern eben ein symbolischer Link auf /usr/bin.

    bei mir ist's umgekehrt. ^^

    Code
    l -d /bin /usr/bin
    drwxr-xr-x   2 root root 4096 Mai 13 15:08 /bin/
    lrwxrwxrwx 259 root root    4 Apr 19  2021 /usr/bin -> /bin/

    »Hauptsache BogoMIPS!«

    Fleischfresser

  • bei mir ist's umgekehrt. ^^

    Code
    l -d /bin /usr/bin
    drwxr-xr-x   2 root root 4096 Mai 13 15:08 /bin/
    lrwxrwxrwx 259 root root    4 Apr 19  2021 /usr/bin -> /bin/

    Auch bei dir in einem netcup-Webhosting? Hmm. Jeder Server ein Unikat ;):rolleyes: Muss ich nachher doch mal einige weitere Webhostings anschauen, ob die auch unterschiedlich sind in der Beziehung. Letztlich sollen die Dateien wohl einfach unter beiden Pfaden erreichbar sein, wozu auch immer.

  • ja, WH2000SE (04.09.2019).

    die sind eben handcrafted by netcup.


    das wurde ja irgendwann generell mal geändert. insofern würde ich sagen: es hängt vom alter ab. :D

    »Hauptsache BogoMIPS!«

    Fleischfresser

    Einmal editiert, zuletzt von Olivetti ()

    Gefällt mir 2
  • ja, WH2000SE (04.09.2019).

    die sind eben handcrafted by netcup.


    das wurde ja irgendwann generell mal geändert. insofern würde ich sagen: es hängt vom alter ab. :D

    Vom Alter des Hosts oder vom Alter desjenigen, der das System installiert hat? :D