如何在共享 sftp 文件夹中设置 sftp 服务器权限和所有权?(ACL 的?)

Sho*_*doo 5 linux sftp permissions debian sshd

我需要为我们公司的 sftp 服务器进行专门的配置,以便能够以安全的方式与我们的客户交换文件(服务器运行 Debian Linux 8.7)。

  • 我们需要一个“customers”文件夹,我们所有的支持人员(每个人都有一个单独的用户帐户)在其中具有读/写访问权限。
  • 在“customers”文件夹下,我们需要为每个客户创建一个子文件夹。
  • 每个客户在服务器上也有自己的用户帐户。
  • “支持用户”应该放在“客户”文件夹中。
  • 每个“客户用户”都应该在他自己的目录中被 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...  
  .  
  .  
  .
Run Code Online (Sandbox Code Playgroud)

我将 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
Run Code Online (Sandbox Code Playgroud)
  • “客户用户”的配置方式是,他们的主目录是“客户”下的相应目录。
  • 配置了“支持用户”,他们的主目录是“客户”文件夹(虽然我不确定,如果这很重要甚至正确)

我的问题是,我不确定如何配置文件夹和文件的所有权和权限。据我所知,“internal-sftp”服务器在其 (ch) 根目录中需要 root:root 所有权。由于根目录在两种情况下都不同:

  • 我必须如何配置文件/目录权限?

  • 我必须如何配置文件和目录的所有权?

  • 当主文件夹是相应的 sftp chroot 目录时,我应该如何处理不同用户的 ~/.ssh 文件夹(如果这是一个正确的解决方案)?

  • 我需要 ACL 吗?如果是这样:我必须如何配置它才能满足上述要求?

我试过这个(关于“sshd-configuration”的德语ubunutusers.de wiki条目),但这只能解决“客户用户”而不是“支持用户”的部分问题。