Я хочу создать пользователей для sftp с ограниченным доступом к определенным папкам
Моя структура папок похожа на это:
/var/www/site1/files/
/var/www/site2/files/
/var/www/site3/files/
Я хочу создать sftp user1 к доступу /var/www/site1/files/
только для загрузки файлов веб-сайта с помощью filezila и не может просмотреть никакие другие папки
и аналогично для user2 с ограниченным доступом к /var/www/site2/files/
и для user3 с ограниченным доступом к /var/www/site3/files/
Вы в значительной степени следовали за вещью.
Лучший способ состоит в том, чтобы сделать это:
Смонтируйте каждый из этих 3 каталогов к /home
каталоги путем добавления следующих строк в /etc/fstab
:
/var/www/site1/files/ /home/site1/htdocs/ bind 0 0
/var/www/site2/files/ /home/site2/htdocs/ bind 0 0
/var/www/site3/files/ /home/site3/htdocs/ bind 0 0
Использовать mount -a
немедленно инициировать монтирование.
Удостоверьтесь, что Вы добавили пользователей site1, site2, site3 той же группе (например, sftpusers или sftponly). Можно использовать эти команды, чтобы добавить пользователей к группам:
usermod -aG sftponly site1
usermod -aG sftponly site2
usermod -aG sftponly site3
Сделайте /home/{site1,site2,site3}
корневые каталоги для соответствующих пользователей, использующих:
usermod -d /home/site1 site1
usermod -d /home/site2 site2
usermod -d /home/site3 site3
Добавьте следующее в Вашем /etc/ssh/sshd_config
:
Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
Наконец перезапустите ssh сервисное использование:
service ssh restart
См. это сообщение на Цифровом Океане для деталей.
После следования krishna ответ chalise Вы, возможно, должны скорректировать владение и полномочия.
Например, для пользователя site1:
chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly