Предоставление пользователю 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 и все заработало.