Wir haben kürzlich eine Problemumgehung gefunden, die folgendermaßen aussieht:
/ etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Verzeichnisberechtigungen:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Erfüllt jetzt /home
die Anforderungen für ChrootDirectory
eingeschränkte Benutzer und kann von diesen nicht aufgelistet werden. Benutzer können sich jedoch sftponly
nicht anmelden, wenn ihre Home-Verzeichnisse wie gewohnt eingerichtet sind ( /home/$LOGNAME
): In der Chroot-Umgebung befinden sich ihre Home-Verzeichnisse nicht innerhalb, /home
sondern direkt unter root ( /
).
Problemumgehung 1
Stellen Sie die Häuser eingeschränkter Benutzer so ein, wie sie unter chroot angezeigt werden:
root@server:~ # usermod -d /username username
Vorbehalt 1
Wenn einer der uneingeschränkten Benutzer oder ein Verwaltungsskript die Tilde-Erweiterung von bash verwendet, wie ~username
sie bis /username
jetzt erweitert wird, ist dies nicht gemeint.
Auch der Administrator, der sftponly
Benutzer erstellt , muss daran denken, nicht standardmäßige Startseite zu verwenden. Mit einem Skript lösbar. Was der Administrator beachten muss, um zu verwenden.
Problemumgehung 2
Dies ist eine Alternative zu der vorherigen, die wir letztendlich verwendet haben:
root@server:~ # ln -s . /home/home
Das heißt, Sie erstellen einen Symlink /home
zu Ihrem eigenen Verzeichnisnamen. Zeigt nun unter chroot /home/username
auf dasselbe Verzeichnis wie ohne chroot. Für eingeschränkte Benutzer, die mit sftp angemeldet sind, wird dies als angezeigt /username
. Dieses Verzeichnis kann auf seinen Besitzer (eingeschränkter Benutzer) geschrieben werden. Eingeschränkte Benutzer können die übergeordneten oder privaten Verzeichnisse der Geschwister nicht nach Namen auflisten.
Das einzige Besondere an einem sftponly
Benutzer ist seine Teilnahme an der sftponly
Gruppe. Wir fanden es einfacher, damit umzugehen als mit der Problemumgehung 1.
Vorbehalte 2
- Sie können keinen Benutzer mit dem Namen 'home' mit einem Home-Verzeichnis haben
/home/home
- Sie müssen vorsichtig mit Skripten sein, die die
/home
Hierarchie durchlaufen und Symlinks folgen.
chroot
ed-Benutzer ihreChrootDirectory
? Können sie darauf zugreifen?