![在无法拥有 root 权限的文件夹中使用 chroot 的 SFTP](https://linux22.com/image/1305031/%E5%9C%A8%E6%97%A0%E6%B3%95%E6%8B%A5%E6%9C%89%20root%20%E6%9D%83%E9%99%90%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E4%BD%BF%E7%94%A8%20chroot%20%E7%9A%84%20SFTP.png)
我在“公共”文件夹中设置带有 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 权限)。
因此,我的问题是:
- SSH 是否以任何方式允许 chroot 用户进入没有 root:root 权限的目录?
- 如何将 USER-ftp chroot 目录设置为 ~/apps,将所有 ftp 子帐户设置为 ~/apps/APP_NAME/app?请提及您的用户名的一部分也将是可以访问的文件夹的名称(例如,用户 USER.my_first_app-ftp 将在 ~/apps/my_first_app/app 中 chroot)。
- 此外,如何让 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
并输入用户密码。