Я хочу по умолчанию заданного пользователя в определенной папке, когда они SFTP на моей машине Ubuntu 18.04. Я также хотел немного заблокировать SFTP. Эта статья о Digital Ocean дала мне то, что мне было нужно, и помогла мне начать, но это не работает, как я надеялся, будет .
Я создал папку с именем / var / sftp / my_username. Затем я обновил sshd_config, добавив в него следующие настройки:
Match User my_username
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Я надеялся, что my_username окажется в / var / sftp / my_username и окажется там. Вместо этого пользователь попадает в / var / sftp и должен открыть 'my_username', чтобы перейти в каталог, в который он может загрузить. Это проблема, потому что / var / sftp в конечном итоге перечислит другие подпапки sftp для других пользователей (IE /var/sftp/your_username).
Что я могу сделать, чтобы установить для этого пользователя значение по умолчанию / var / sftp / my_username? Я уже пытался изменить домашний каталог пользователя в этом месте, но безуспешно.
Спасибо!
Я полагаю, что необходимо изменить запись 'ChrootDirectory/var/sftp /' в sshd_config к чему-то как 'ChrootDirectory/var/sftp/my_username'
Спасибо Olav. Я действительно пробовал это в своем исходном поиске и устранении неисправностей. Это не работает. Я не могу создать ChrootDirectory к любому каталогу, которым не владеет Корень.
Я решил эту проблему, просто создав дополнительный слой папки:
ChrootDirectory/var/sftp/my_username/my_username
/var/sftp папка имеет несколько имен пользователей для различных пользователей. Каждым пользователем является Chroot'd к их верхнему уровню my_username папка. Они не могут записать в/var/sftp/my_username, но они владеют/var/sftp/my_username/my_username и могут просто открыть ту подпапку и сделать, как им нравится.
Это дает им способность к записи и скрывает другие папки от других пользователей.