SFTP Chroot 在 chrooted 中写入 /

SFTP Chroot 在 chrooted 中写入 /

我想使用 chrooted 用户在他的 / 中写入但我不能。

例如:我有/home/sftponly/ChrootDirectory

里面必须是另一个对该用户具有权限的目录,否则我无法连接。

我希望它是可写的,但连接的用户看不到任何子目录。有什么提示可以告诉我我做错了什么吗?

我的 sshd_config

Match User sftponly
  ChrootDirectory /home/sftponly
  ForceCommand internal-sftp
  AllowTcpForwarding no
  X11Forwarding no

答案1

如果我理解正确的话,您希望您的用户在 chrooted 时能够写入他的主目录。

当您使用启用了 chroot 的 sftp 连接时发生的情况如下:

  • 用户被 chroot 到主“chroot”目录(此处为/home/sftponly
    • 主 chroot 必须由 root 拥有,并且对于用户来说是只读的。
  • 然后用户就被 chroot 了再次进入他的主目录,如/etc/passwd从主 chroot 开始所述。主目录对于用户来说是可写的。

因此如果在 /etc/passwd 中有如下一行:

sftponly:x:1002:1002:,,,:/home/sftponly:/bin/bash

sshd 将尝试将您的用户 chroot 到/home/sftponly/home/sftponly

所以如果你绝对需要要 chroot 到这个精确的路径,/home/sftponly你必须将主 chroot 设置sshd_config为,例如/home

ChrootDirectory /home

然后设置主目录sftponly进入:/etc/passwd/sftponly

sftponly:x:1002:1002::/sftponly:/bin/bash

然后/home/sftponlysftponly 用户就可以写入了,没问题。

相关内容