我很新的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文件夹:

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

我做错了什么?
很可能是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,但我不在乎)
感谢所有!