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 /homedie Anforderungen für ChrootDirectoryeingeschränkte Benutzer und kann von diesen nicht aufgelistet werden. Benutzer können sich jedoch sftponlynicht anmelden, wenn ihre Home-Verzeichnisse wie gewohnt eingerichtet sind ( /home/$LOGNAME): In der Chroot-Umgebung befinden sich ihre Home-Verzeichnisse nicht innerhalb, /homesondern 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 ~usernamesie bis /usernamejetzt erweitert wird, ist dies nicht gemeint.
Auch der Administrator, der sftponlyBenutzer 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 /homezu Ihrem eigenen Verzeichnisnamen. Zeigt nun unter chroot /home/usernameauf 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 sftponlyBenutzer ist seine Teilnahme an der sftponlyGruppe. 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
/homeHierarchie durchlaufen und Symlinks folgen.
chrooted-Benutzer ihreChrootDirectory? Können sie darauf zugreifen?