Ubuntu:将 SFTP 用户指向其工作目录而不列出其他用户的目录

Ubuntu:将 SFTP 用户指向其工作目录而不列出其他用户的目录

我正在 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

相关内容