受限用户被关在目录中

受限用户被关在目录中

我们需要创建一个只能留在其目录中的用户……这并不难……我们为该用户分配了 /bin/rbash shell。除了主目录之外,任何移动到其他目录的尝试都是徒劳的。好!到目前为止一切顺利。然后我们收到了将该目录作为 Windows 中的网络驱动器安装的要求……我们发现了一个名为 SFTP Net Drive(通过 SSH 安装)的软件,该软件可以完美地完成其工作,但是当用户分配了 /bin/rbash 登录 shell(/etc/passwd)时,无法连接……“由于错误 103,连接失败”正常的 SSh Via putty 工作正常。我甚至尝试了 SCP Windows 图形工具(安全复制),但仍然无法连接。两种情况下失败的协议都是 SFTP。有什么想法吗?

答案1

当我们搜索“rbash sftp 不起作用”时,我们会收到大量发送到各个论坛的消息,这些消息都说 rbash 和 SFTP 不起作用。不过,我发现了一个可能有帮助的 Server Fault 页面,所以我会从中借用该内容Server Fault 上的那个帖子由 Server Fault 用户斯普雷蒂克先生这可能有助于解释标准 SFTP 失败的原因:

rbash不允许您运行以 为开头的命令/,如果有人尝试运行,它就会退出。

除非您使用内部 sftp 服务器,否则执行尝试 /usr/libexec/sftp-server将会失败。

使用Subsystem sftp internal-sftpsshd_config 解决这个问题。

但是,使用rbash不会阻止 sftp 在你的文件系统中漫游,你可能需要chroot 用户

因此实际上,我相信无论底层发生什么,都是试图获取以 开头的路径的目录列表/。这将在 中失败rbash

这就是说,你需要知道,正如我在评论中所说的,我从 Server Fault 中借用的这个答案,rbash效果最好当您还实现 chrooted 用户目录时,因为 SFTP 会旁路rbash实施的限制在技术上仍然可以在您的文件系统中徘徊。

除了 之外rbash,您确实需要实现 chrooted 用户目录。这还可以保护 SFTP 组件免于在系统中四处漂移。

相关内容