授予sftp用户访问/ var / www目录的权限
我创建了一个用户并创建了他的主目录/var/www/mysite/ftpdir
我还在sshd_config
为此用户添加了一个Match用户条目,其中ChrootDirectory指向/var/www/mysite
我重新启动了ssh
来接这个。
当我使用sftp登录时 – 用户仍然会转到用户的旧目录,即/home/user
我错过了什么?
这是一个过程:
-
将用户添加到组:
sudo usermod -aG www blub
as Whats编辑和添加文件到“/ var / www”的最简单方法?或者只使用
sudo adduser
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
-
将用户的主目录配置为Web目录(不在
/home
):sudo usermod -d /var/www/mysite/ftpaccessdir
-
配置ssh chroot
sudo nano /etc/ssh/sshd_config
将以下内容添加到最后:
Subsystem sftp internal-sftp Match user
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-data访问权限
sudo chown -R www-data:www-data /var/www/site chmod 755 /var/www/site
如果您在结束时遇到连接拒绝错误,请确保在“UsePAM yes”之后放置“Subsystem sftp internal-sftp ” 。 如果没有,那么更新并重新启动ssh并且它工作正常。