通过sftp的符号链接和filezilla

我很新的debian,我试图build立一个服务器。

我创build了一个只能访问他的文件夹/home/username (及其子目录)的用户。

现在我想用这个用户来设置我的networking服务器,我已经给了他/var/www访问权限,但是我不能通过sftp来看到/var/www ,而且我做了一个这样的符号链接

 root@server:/home/username# ln -s /var/www www root@server:/home/username# cd www root@server:/home/username/www# chown username:username * 

现在,用filezilla,我可以看到这样的www文件夹:

FileZilla中

但是当我试图打开它,我得到这个:

打开

我做错了什么?

很可能是SFTP被chroot,所以目录/ var / www在chroot jail中是不可用的。

查看/etc/ssh/sshd_config并检查sftp指令。 你看到像这样的东西:

 Match group sftp ChrootDirectory /home/%u AllowTcpForwarding no ForceCommand internal-sftp 

sshd_config手册页在这里 。

基本上,一旦/home/username在SFTP中的/home/username中,该目录变为/并且/home/username之外的引用不可用。 事实上,象ln -s /var/www /home/username/www这样的符号链接看起来就像是在/home/username/var/www (即/home/username现在是/引用/var/www也必须是chroot上下文中的/home/username子目录)。

作为一个解决scheme,你可以closureschroot(但是这会有其他的安全隐患,主要是SFTP用户完全控制你的文件系统)。 你可以在/ home / username / www(类似于mount --bind /var/www /home/username/www (检查你的文件的mount )的环境中mount --bind /var/www /home/username/www在chroot下)。 你也可以使用sshd_config文件来从chroot中排除一个特定的用户(虽然同样具有安全隐患)。

我会先尝试绑定安装。

我解决了我的连接符号链接

 root@server:/home/username# mkdir www root@server:/home/username# mount --bind /home/username/www /var/www 

(即使我失去了所有的/ var / www,但我不在乎)

感谢所有!