我希望能够创build一个托pipe多个网站的结构。 我希望用户文件驻留在/var/www/sites/domain.com内,并且使用chroot来限制sftp访问。
我已经遵循了一些关于如何设置的例子,这是我迄今为止所做的:
添加一个新用户,设置主目录和组:
useradd foobar -d /var/www/sites/foobar.com -g sftp
在/etc/ssh/sshd_config我添加了:
Match Group sftp X11Forwarding no ChrootDirectory %h AllowTcpForwarding no ForceCommand internal-sftp
并重新启动服务
我已经configuration/etc/vsftpd/vsftpd.conf以包含以下更改:
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
并重新启动vsftpd
我将/ var / www / sites的所有权设置为root,将/var/www/sites/foobar.com设置为foobar
但是,当我尝试使用FileZilla通过SFTP连接我得到这个:
Error: Authentication failed. Error: Critical error: Could not connect to server
给予filezilla的用户名和密码当然是正确的
我错过了什么?
Internal-sftp要求chroot用户home驻留在root拥有的dir中:
/一些/path/根拥有/用户DIR1
根目录目录应该有555个权限,用户目录应该由root创build并由特定用户拥有。 内部subdirs用户可以做任何事情,但他不能删除或重命名他们。
在你的情况下,好的方法是下一个:
/var/www/sites/foobar.com/data /logs
用户的家是/var/www/sites/foobar.com/
var , www , sites和foobar.com应该是root拥有的。 此外foobar.com应该有555的权限。 data和logs子目录应该由用户拥有,并且权限应该足够宽以允许httpd访问它们。