В кратце о том, как разрешил только домашнюю директорию для пользователей FTP/SFTP/SSH. В качестве инструментов использовал Ubuntu 10.10 Server, а так же программы lshell (с ее помощью обрезал оболочку для пользователя) и MySecureShell (с ее помощью разрешил SFTP доступ только к домашней директории пользователя).
# редактируем репозитарий
sudo nano /etc/apt/sources.list
# добавляем следующие строки
#deb http://mysecureshell.free.fr/repository/index.php/ubuntu testing main
#deb-src http://mysecureshell.free.fr/repository/index.php/ubuntu testing main
# качаем необходимые пакеты
gpg —keyserver hkp://pool.sks-keyservers.net —recv-keys E328F22B; gpg —export E328F22B | sudo apt-key add –
sudo apt-get update
sudo apt-get install lshell mysecureshell
# создаем нового пользователя
sudo adduser user1
# устанавливаем для него оболочку lshell
sudo usermod -s /usr/bin/lshell user1
# смотрим конфиг лшелла – правим так как надо
# впринципе, можно оставить как есть
sudo nano /etc/lshell.conf
# делаем chroot для sftp с помощью MySecureShell
sudo nano /etc/ssh/sshd_config
# меняем Subsystem sftp /usr/lib/openssh/sftp-server на Subsystem sftp /bin/MySecureShell -c sftp-server
# ребутим ssh
sudo service ssh restart
# делаем chroot для pure-ftp (по умолчанию в Ubuntu Server 10.10)
cd /etc/pure-ftpd/conf/
sudo touch ChrootEveryone
sudo nano ChrootEveryone
# вписываем yes
sudo /etc/init.d/pure-ftpd restart
Небольшой бонус: как примонтировать удаленную папку в локальной файловой системе (на примере Ubuntu):
sudo apt-get install sshfs
mkdir ~/user1
sshfs user1@hostname:/ ~/user1