我需要对我们公司的 sftp 服务器进行专门配置,以便能够以安全的方式与客户交换文件(服务器运行 Debian Linux 8.7)。
- 我们需要一个“客户”文件夹,其中我们所有的支持人员(每个人都有一个单独的用户帐户)都具有读/写访问权限。
- 在“客户”文件夹下,我们需要为每一位客户创建一个子文件夹。
- 每个客户还在服务器上拥有自己的用户帐户。
- “支持用户”应在“客户”文件夹上进行 chroot。
- 每个“客户用户”都应该在自己的目录中进行 chroot。
- 身份验证方法应通过密码保护的证书(而不是通过密码)
- 支持用户和客户用户都不能添加、更改或删除顶部文件夹(客户)中的文件和/或文件夹
customers <--------- All support personel entry point | +--customer_001 <-------- Customer 1 entry point | | | +--files... | +--customer_002 <-------- Customer 2 entry point | | | +--files... | +--customer_003 <-------- Customer 3 entry point | | | +--files... . . .
我按如下方式配置了 sshd:
[...]
PasswordAuthentication yes
[...]
# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
[...]
Match Group kunden
ChrootDirectory %h
ForceCommand internal-sftp
Match Group wit-user
ChrootDirectory /var/sftp/customers
ForceCommand internal-sftp
- “客户用户”的配置方式是其主目录是“客户”下的相应目录。
- 配置“支持用户”,他们的主目录是“客户”文件夹(尽管我不确定这是否重要甚至正确)
我的问题是,我不确定如何配置文件夹和文件的所有权和权限。据我了解,“internal-sftp”服务器需要 root:其 (ch)root 目录中的 root 所有权。由于两种情况下的根目录不同:
如何配置文件/目录权限?
我如何配置文件和目录的所有权?
当主文件夹是相应的 sftp chroot 目录时,我应该如何处理不同用户的 ~/.ssh 文件夹(如果这是一个正确的解决方案)?
为此我需要 ACL 吗?如果是这样:我必须如何配置它才能满足上述要求?
我试过这(关于“sshd-configuration”的德语 ubunutusers.de wiki 条目)但这仅解决了“客户用户”而不是“支持用户”的部分问题。