Я хочу создать пользователей для sftp с ограниченным доступом к определенным папкам.
Моя структура папок выглядит так:
/var/www/site1/files/
/var/www/site2/files/
/var/www/site3/files/
Я хочу создать пользователя sftp user1, чтобы иметь доступ /var/www/site1/files/
только для загрузки файлов веб-сайта с помощью filezila и не иметь возможности просматривать другие папки.
и то же самое для пользователя2 с ограниченным доступом к/var/www/site2/files/
и для пользователя3 с ограниченным доступом к/var/www/site3/files/
решение1
Вы в значительной степени следовали за этим.
Лучший способ сделать это:
Смонтируйте каждый из 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
Видетьэтот пост на Digital Oceanдля получения подробной информации.
решение2
После того, как следовалответ кришны чалисавам может потребоваться изменить права собственности и разрешения.
Например, для пользователя site1:
chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly