Linux SFTP访问/ var / www

我正在运行Ubuntu 12.04.1 LAMP服务器,并试图让用户读取写入FTP访问/ var / www。

首先,我已经安装了vsftpd,并在vsftpd.conf中设置了write_enable = YES和chroot_local_user = YES,然后将以下段落添加到/ etc / ssh / sshd_config中:

Subsystem sftp internal-sftp Match group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no 

以及评论:

 #Subsystem sftp /usr/lib/openssh/sftp-server 

在此之后,我重新启动了SSH和VSFTPD,然后在/ var / www上设置文件权限如下:

 chown -R root /var/www chgrp -R www-data /var/www 

前两个设置用户和组的所有者

 chmod -R 775 /var/www 

然后这些定义的权限(用户和组有读取,写入和执行)

然后我创build用户并将它们添加到sftponly和www数据组

 adduser test usermod -aG www-data test usermod -aG www-data test 

并将其主目录设置为/ var / www

 usermod -d /var/www test 

一旦完成,我不能连接SFTP,除非我做以下事情:

 chmod gw /var/www 

这意味着www数据(也是我的用户)不能写入www文件夹,但可以写入所有后续文件夹,这是不够的。

我无法更改www文件夹的用户所有者,因为这也阻止了与SFTP的成功连接。

我只想知道为什么我不能连接SFTP是组有写权限,但如果它不能?

我已经看了网,发现了一些有趣的事情: http : //www.thegeekstuff.com/2012/03/chroot-sftp-setup/

它说,你的用户homedir应该是:/或者你应该在/ var / www目录中有一些符号链接,如:

cd /var/www ; ln -s var . ; ln -s www .

因为用户是chroot,并在/ var / www中search其homedir:/ var / www

希望它会帮助你。