Предоставление пользователю sftp доступа к каталогу /var/www
Я создал пользователя и сделал его домашний каталог /var/www/mysite/ftpdir
Я также добавил запись пользователя Match для этого пользователя в sshd_config
с ChrootDirectory, который указывает на /var/www/mysite
Я перезапустил ssh
чтобы поднять это.
Когда я вхожу с sftp - пользователь все еще идет в старый каталог пользователя, т.е. /home/user
Что мне не хватает?
2 ответа
Это процесс:
Добавьте пользователя в группу:
sudo usermod -aG www blub
как в Каков самый простой способ редактировать и добавлять файлы в "/var/www"?или просто использовать
sudo adduser <username> www-data
- Установить vsftpd
sudo apt-get install vsftpd
Настройте vsftpd для удаленного доступа:
sudo nano /etc/vsftpd.conf
и внутри набора файловchroot_local_user=YES
и убедитесь, что это закомментировано:
#chroot_list_enable=YES
согласно документации
- Перезапустите nsftp:
sudo service vsftpd restart
Настройте домашний каталог пользователя на веб-каталог (не в
/home
):sudo usermod -d /var/www/mysite/ftpaccessdir <username>
Настроить ssh chroot
sudo nano /etc/ssh/sshd_config
добавить в конец следующее:
Subsystem sftp internal-sftp Match user <username> ChrootDirectory /var/www/site ForceCommand internal-sftp AllowTcpForwarding no
и убедитесь, что далее в файле это закомментировано (т.е. перед тем, который вы только что добавили)
#Subsystem sftp /usr/lib/openssh/sftp-server
Перезагрузите SSH
sudo service ssh restart
Измените разрешения для apache:
chown root:root /var/www chown root:root /var/www/site chmod 755 /var/www
Как в документах здесь.
Убедитесь, что ваш каталог имеет доступ к данным www
sudo chown -R www-data:www-data /var/www/site chmod 755 /var/www/site
У меня есть простой метод, и он работал для меня Apache.
sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart
Вот и все, если вы все еще сталкиваетесь с проблемой разрешения chmod
а также chown
обратиться к ним в соответствии с вашими потребностями.
Если вы получаете сообщение об ошибке "Отказано в соединении", убедитесь, что после "UsePAM ye s" указано "Subsystem sftp internal- sftp". Если нет, то обновите и перезапустите ssh и все заработало.