У меня есть настройка сервера SFTP, всякий раз, когда пользователь пытается подключиться через SFTP, они видят каталог / home / user, но затем они также могут изменить каталог на / home и даже /
Как мне остановить это, чтобы они могли видеть только домашний каталог текущего пользователя?
У меня есть это в моем sshd_config, который
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory /home/sony
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Из https://wiki.archlinux.org/index.php/SFTP_chroot, акцент мой:
Доступ для записи в chroot dir
...если пользователь может писать в каталог chroot, он может повысить свои привилегии до root и выйти из chroot. Один из способов обойти это - дать пользователю два домашних каталога - один «настоящий» дом, в который они могут писать, и один SFTP-дом, который заблокирован, чтобы поддерживать sshd и безопасность вашей системы. Используя mount --bind, вы можете сделать так, чтобы реальный домашний каталог отображался как подкаталог внутри домашнего каталога SFTP, предоставляя им полный доступ к их настоящему домашнему каталогу.
Это также можно использовать для достижения других целей. Например, домашний каталог пользователя может быть заблокирован в соответствии с правилами sshd chroot, а привязки монтирования используются для предоставления пользователям доступа к другим каталогам:
# mkdir /home/user/web
# mount --bind /srv/web/example.com /home/user/web
Необязательно добавить запись в / etc / fstab:
# echo '/srv/web/example.com/ /home/user/web none bind' >> /etc/fstab
Теперь пользователь может войти в систему с помощью SFTP, они привязаны к / home / user, но они видят папку с именем «web», к которой они могут получить доступ для управления файлами на веб-сайте (при условии, что у них есть правильные разрешения в / srv / web / example. .com.
Как указано в Справочная страница sshd_config:
ChrootDirectory
Задает путь к каталогу, в который после аутентификации будет использоваться chroot (2). При запуске сеанса sshd (8) проверяет, что все компоненты пути являются корневыми каталогами, которые не доступны для записи другим пользователям или группам. После chroot sshd (8) меняет рабочий каталог на домашний каталог пользователя.
Имя пути может содержать следующие токены, которые расширяются во время выполнения после аутентификации подключающегося пользователя: %% заменяется литералом '%',% h заменяется домашним каталогом аутентифицируемого пользователя, а% u заменяется по имени пользователя этого пользователя.
Итак, определение chroot-пути /home/%u
или %h
может быть то, что вы ищете.
Обратите особое внимание на требования к домашнему корневому каталогу пользователей sftp (т.е. /home/exampleuser1
, /home/exampleuser2
и так далее), чтобы он принадлежал пользователю root. Доступ на запись пользователю sftp можно предоставить только в подкаталогах. Это требование находилось под пристальным вниманием Вот.