授予sftp用户访问/ var / www目录的权限

我创建了一个用户并创建了他的主目录/var/www/mysite/ftpdir

我还在sshd_config为此用户添加了一个Match用户条目,其中ChrootDirectory指向/var/www/mysite

我重新启动了ssh来接这个。

当我使用sftp登录时 – 用户仍然会转到用户的旧目录,即/home/user

我错过了什么?

这是一个过程:

  1. 将用户添加到组: sudo usermod -aG www blub as Whats编辑和添加文件到“/ var / www”的最简单方法?

    或者只使用sudo adduser www-data

  2. 安装vsftpd sudo apt-get install vsftpd
  3. 配置vsftpd进行远程访问: sudo nano /etc/vsftpd.conf和文件集内部

     chroot_local_user=YES 

    并确保注释掉:

     #chroot_list_enable=YES 

    根据文件 。

  4. 重启nsftp: sudo service vsftpd restart
  5. 将用户的主目录配置为Web目录(不在/home ):

     sudo usermod -d /var/www/mysite/ftpaccessdir  
  6. 配置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 
  7. 重启ssh

     sudo service ssh restart 
  8. 更改apache的权限:

     chown root:root /var/www chown root:root /var/www/site chmod 755 /var/www 

    就像在这里的文档 。

  9. 确保您的目录具有www-data访问权限

     sudo chown -R www-data:www-data /var/www/site chmod 755 /var/www/site 

如果您在结束时遇到连接拒绝错误,请确保在“UsePAM yes”之后放置“Subsystem sftp internal-sftp 。 如果没有,那么更新并重新启动ssh并且它工作正常。