Chroot-Benutzer startet nicht in seinem Home-Verzeichnis und lädt seine bash_profiles nicht

Chroot-Benutzer startet nicht in seinem Home-Verzeichnis und lädt seine bash_profiles nicht

Wenn sich der Benutzer anmeldet, startet er in / des Chroots (was auf der realen Maschine /var/jail ist). Ich möchte, dass er in seinem Home-Verzeichnis startet. Außerdem scheint er keine seiner Profildateien (.bash.rc usw.) zu laden. Ich bin gefolgtDasTutorial zum Erstellen der Chroot-Umgebung. So sieht meine /etc/passwd aus:

test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash

so sieht meine /var/jail/etc/passwd-Datei aus:

test:x:1004:1008:,,,:/home/test:/bin/bash

Ich habe auch herausgefunden, dass, wenn ich entferne

Match User test
    ChrootDirectory /var/jail
    AllowTCPForwarding no
    X11Forwarding no

Aus meiner /etc/ssh/sshd_config geht hervor, dass der Benutzer in seinem korrekten Home-Ordner und mit geladenen Bash-Einstellungen startet. Er kann die Chroot-Umgebung jedoch verlassen, wenn ich diesen Teil entferne.DasDie Frage, die ich zuvor gestellt habe, ist in gewisser Weise damit verwandt, da ich denke, dass das falsche Aussehen der Befehlszeile durch die nicht geladenen Profildateien verursacht wird. Also, irgendwelche Ideen, wie man das beheben kann?

Antwort1

Ihre Konfiguration ist bis auf ein kleines Detail korrekt: Das Home-Verzeichnis /etc/passwdsollte den Chroot-Pfadteil nicht enthalten. Ändern Sie es in:

test:x:1004:1008:,,,:/home/test:/bin/bash

starten Sie neu sshdund versuchen Sie es erneut.

Aus man sshd_config:

ChrootVerzeichnis

Gibt den Pfadnamen eines Verzeichnisses an, zu dem chroot(2) nach der Authentifizierung wechseln soll. Alle Komponenten des Pfadnamens müssen root-eigene Verzeichnisse sein, die von keinem anderen Benutzer oder keiner anderen Gruppe beschreibbar sind. Nach dem Chroot ändert sshd(8) das Arbeitsverzeichnis in das Home-Verzeichnis des Benutzers.

Das heißt, es wird zuerst sshdausgeführt chroot(in unserem Fall chroot /var/jail) und dann sshddas Verzeichnis in das Home-Verzeichnis des Benutzers geändert (in unserem Fall cd /home/test– in einer Chroot-Umgebung cd /var/jail/home/testwürde das nicht funktionieren).

Wenn Sie Debian/Ubuntu verwenden (da das von Ihnen erwähnte Tutorial für Debian ist), möchten Sie möglicherweise eine Datei /var/jail/etc/debian_chrootmit dem Namen und dem Inhalt „chroot“ erstellen. Diese wird in der Benutzeraufforderung in Klammern wie folgt angezeigt: (chroot)test@servername:~$.

(Ich habe Ihre Konfiguration auf meinem Ubuntu 12.04 dupliziert und sie hat nach dem Entfernen /var/jailaus dem Eintrag des Benutzertests in funktioniert /etc/passwd.)

verwandte Informationen