Doc*_*Doc 15 debian ftp sftp symbolic-link
我对 debian 很陌生,我正在尝试设置服务器。
我创建了一个只能访问他的文件夹/home/username(及其子目录)的用户。
现在我想将该用户用于我设置的网络服务器,并且我已经授予他访问权限,/var/www但我无法/var/www通过 sftp看到,我做了一个像这样的符号链接:
root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *
Run Code Online (Sandbox Code Playgroud)
现在,使用filezilla,我可以看到这样的www文件夹:

但是当我尝试打开它时,我得到了这个:

我做错了什么?
cjc*_*cjc 24
很可能 SFTP 正在被 chroot,因此目录 /var/www 对 chroot jail 中的用户不可用。
查看/etc/ssh/sshd_config并检查 sftp 指令。你看到类似的东西:
Match group sftp
ChrootDirectory /home/%u
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
sshd_config 手册页在这里。
基本上,一旦用户/home/username在 SFTP 中,该目录就会变为/并且外部的引用/home/username不可用。事实上,类似的符号链接ln -s /var/www /home/username/www看起来就像您正在尝试访问/home/username/var/www(即,/home/username现在/任何引用的链接也/var/www必须是/home/usernamechroot 上下文中的子目录)。
作为解决方案,您可以关闭 chroot(但这会带来其他安全隐患,主要是 SFTP 用户完全控制您的文件系统)。您可以将 /var/www 循环挂载到 /home/username/www (类似于mount --bind /var/www /home/username/www(检查您的文档mount),它应该像您在 chroot 下期望的那样工作)。您还可以使用 sshd_config 文件来从 chroot 中排除该特定用户(尽管同样存在安全隐患)。
我会先尝试绑定安装。