在无法拥有 root 权限的文件夹中使用 chroot 的 SFTP

在无法拥有 root 权限的文件夹中使用 chroot 的 SFTP

我在“公共”文件夹中设置带有 chroot 的 SFTP 时遇到了麻烦。我的服务器上的每个客户端都有 3 到 X 个帐户。

这三个帐户是:

  • 用户-系统帐户仅供内部使用,需要完全访问客户端的主目录
  • USER-www-也是仅供内部使用的系统帐户,每个客户应用程序都使用此uid,并且需要对用户主目录中的多个子文件夹具有完全访问权限
  • USER-ftp-仅用于 sftp 访问的帐户,chroot id 为 ~/apps

问题是 ~/apps 没有 root:root 权限,也不能拥有。我还想为 USER-ftp 创建子账户,这些子账户在 ~/apps/APP_NAME/app 中有 chroot 权限,并拥有该目录的完全访问权限(因此 ~/apps/APP_NAME/app 文件夹不能有 root:root 权限)。

因此,我的问题是:

  1. SSH 是否以任何方式允许 chroot 用户进入没有 root:root 权限的目录?
  2. 如何将 USER-ftp chroot 目录设置为 ~/apps,将所有 ftp 子帐户设置为 ~/apps/APP_NAME/app?请提及您的用户名的一部分也将是可以访问的文件夹的名称(例如,用户 USER.my_first_app-ftp 将在 ~/apps/my_first_app/app 中 chroot)。
  3. 此外,如何让 USER-ftp 以 USER 身份登录,而不使用 '-ftp',例如 USER.my_fist_app-ftp 作为 USER.my_fist_app?

答案1

我不确定我是否理解了您的问题,但我会尽力回答。

1) 您可以在 /etc/passwd 中更改用户主文件夹的位置。然后为需要能够读取/写入这些文件夹的用户创建组,并

chown -R user:group /the/new/homefolder

1a) sftp 的问题在于用户仍然能够读取系统上的其他目录和文件,但不能写入或创建。

2)同样,你可以按照1中提到的方法操作,

3) 我不明白这部分 - 你的意思是登录后切换用户吗?你通常可以通过以下方式执行此操作:

su username

并输入用户密码。

相关内容