![Ubuntu:将 SFTP 用户指向其工作目录而不列出其他用户的目录](https://linux22.com/image/174524/Ubuntu%EF%BC%9A%E5%B0%86%20SFTP%20%E7%94%A8%E6%88%B7%E6%8C%87%E5%90%91%E5%85%B6%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95%E8%80%8C%E4%B8%8D%E5%88%97%E5%87%BA%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E7%9A%84%E7%9B%AE%E5%BD%95%20.png)
我正在 Ubuntu Server 18.04 上配置 SFTP 服务器。我想创建直接指向其工作目录的 SFTP 帐户,而不列出其他帐户。例如,如果服务器上的真实工作目录是/sftpdir1/sftpdir2/user1
,用户应该将其视为/
而不是/user1
像使用时那样chrootdirectory
:当我通过 FileZilla 登录时,我应该找到如下图所示的目录1我可以在哪里上传和下载文件。
更新:为什么不设置 chrootdirectory/etc/ssh/sshd_config
如果我有更多的用户分配到同一组,那么具有相同的chrootdirectory
,其中的任何用户都会看到其他人的工作目录。或者通过登录,我不希望用户看到其他人的目录或他/她自己的工作目录树:只需/
如图所示查找。
答案1
您必须接受您的用户将无法写入/
他们所看到的内容。因此你不能真正将他们的主目录设为他们的 chroot 目录。如果“工作目录”不是指主目录,那么您不必关心。只需创建目录
/sftproot
|__ user-1
| |___ rw-dir
|__ user-2
| |___ rw-dir
并设置ChrootDirectory /sftproot/%u
.这些user-x
目录只能由 root 写入。任何用户都无法看到任何其他用户的 chroot 目录。
使用主目录
如果您希望用户看到他们的主目录,然后创建相同的目录结构,我建议使用不同的名称
/sftproot
|__ user-1
| |___ user-1
|__ user-2
| |___ user-2
并进行绑定安装
mount --bind /home/user-1 /sftproot/user-1/user-1
这也可以通过条目来完成fstab
。