我正在设置一个 sftp 服务器,客户端只有只读权限。他们将登录到他们的 chroot 目录,这很好,但我需要一个可以访问/写入这些目录的管理员帐户。
/var/www/hosts <- admin chroot (root:root, 700)
-- /domain1 <- client1 chroot (root:root, 700)
-- /domain2 <- client2 chroot (root:root, 700)
-- /domain3 <- client3 chroot (root:root, 700)
所有 sftp 用户登录后都会转到正确的位置,但管理员帐户可以看到子目录,但无法进入,显然也无法写入。
我尝试为子目录设置 ACL 权限,从而授予管理员帐户写访问权限;这种方法可行,但会破坏客户端的 sftp 访问,因为 sshd 会报告有关 chroot 所有权/权限不正确的致命错误并中止登录。
我该怎么做才能解决我的问题?
答案1
好的,因此我将所有目录的权限更改为 755,在每个域内创建了一个“数据”目录,并将权限设置为 root:admsftp 775,并修改了我的 sshd_config 以包含
ForceCommand internal-sftp -d /data
因此现在当客户端连接时,它们会被强制进入数据目录,仍然是只读的。当然它们可以进入上一级目录,但它们能从那里做的就是返回“数据”目录。
虽然不理想但是满足了我的需要。