
Ich versuche den Benutzer lenny anzulegen, der Lese- und Schreibrechte im Ordner hat /home/lenny/
und keine Shell hat, sondern nur Zugriff über SFTP. Ich gehe folgendermaßen vor:
useradd lenny
mkdir /home/lenny
usermod -d /home/lenny lenny
passwd lenny
chown lenny:lenny /home/lenny
chmod 755 /home/lenny
usermod -s /bin/false myuser
Ich habe dann geändert /etc/ssh/sshd_config
:
Subsystem sftp internal-sftp`
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
Wenn ich das jetzt tue, sftp lenny@server
kann ich CHROOT einfach verlassen, indem ich cd /
und mache ls -la
, ich sehe alles!
Warum ist das so??? Ich verstehe es nicht, die Konfiguration sollte in Ordnung sein, oder liege ich falsch?
Antwort1
Haben Sie den SSHD-Dienst nach den Änderungen an neu gestartet /etc/ssh/sshd_config
?
sudo /etc/init.d/ssh restart
Stellen Sie sicher, dass das Chroot-Verzeichnis für den SFTP-Benutzer (in diesem Fall /home/lenny
) root und nicht dem SFTP-Benutzer gehört. chmod 755
ist korrekt.
Außerdem würde ich zur zusätzlichen Sicherheit die folgenden beiden Zeilen hinzufügen:
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Starten Sie Ihren SSHD-Dienst neu und Sie sollten über das gewünschte Chroot verfügen.