FTP
Из документации по Ubuntu:
Защита FTP
В /etc/vsftpd.conf есть опции, которые помогут сделать vsftpd более безопасным. Например, пользователи могут быть ограничены своими домашними каталогами, раскомментировав:
chroot_local_user=YES
Вы также можете ограничить определенный список пользователей только их домашними каталогами:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
После раскомментирования вышеупомянутых параметров создайте /etc/vsftpd.chroot_list содержащий список пользователей, по одному на строку. Затем перезапустите vsftpd:
sudo /etc/init.d/vsftpd restart
SFTP
Отредактируйте /etc/ssh/sshd_config:
При необходимости установите subsystem sftp internal-sftp .
Добавьте следующее:
Match user theUserName
ChrootDirectory %h
ForceCommand internal-sftp
Сохраните и протестируйте конфигурацию, запустив sshd -t . Если это успешно, перезапустите ssh чтобы применить изменения.
В зависимости от ваших настроек, папка, которую вы указываете как ChrootDirectory (%h - дом пользователя), должна принадлежать пользователю root без каких-либо прав на запись для других. Так что это не совсем настоящий домашний каталог.