
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/passwd
sollte den Chroot-Pfadteil nicht enthalten. Ändern Sie es in:
test:x:1004:1008:,,,:/home/test:/bin/bash
starten Sie neu sshd
und 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 sshd
ausgeführt chroot
(in unserem Fall chroot /var/jail
) und dann sshd
das Verzeichnis in das Home-Verzeichnis des Benutzers geändert (in unserem Fall cd /home/test
– in einer Chroot-Umgebung cd /var/jail/home/test
wü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_chroot
mit 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/jail
aus dem Eintrag des Benutzertests in funktioniert /etc/passwd
.)