我刚刚安装了一个基于 CentOS 的 SFTP 服务器。
我需要所有传入的文件都转到 /mnt/inbound/ 文件夹,因此我想确保来自该主机的每个通过 SFTP 登录的用户都将 /mnt/inbound/ 作为他们的起点,并且我想确保他们不能去其他任何地方。
我已经能够使用 SFTP 客户端与测试用户连接并确保用户被监禁在各自的文件夹中——但用户无法上传文件......
这是我到目前为止所做的:
$ groupadd sftponly
# Enable built-in implementation of SFTP Subsystem sftp internal-sftp
Match Group sftponly # Force the connection to use the built-in SFTP support ForceCommand internal-sftp # Chroot the connection into the specified directory ChrootDirectory /mnt/inbound/%u # Disable network tunneling PermitTunnel no # Disable authentication agent forwarding AllowAgentForwarding no # Disable TCP …
我将 CentOS 服务器配置为 SFTP 服务器,以安全的方式接收客户文件。然后我需要能够通过 SMB 访问这些文件。
我设法使权限按预期工作,一切都很好,可以支持客户访问 SFTP。一个重要的方面是我将用户“囚禁”到他们的 /var/inbound/ 目录。
现在我创建了 /var/inbound 目录:
sudo mkdir /var/inbound
sudo chown root.root /var/inbound #root must be owner of directory
Run Code Online (Sandbox Code Playgroud)
这是我为每个客户创建子目录的方法:
sudo mkdir -p /var/inbound/[username]/uploads
sudo chown root /var/inbound/[username]
sudo chmod go-w /var/inbound/[username]
sudo chown [username]: /var/inbound/[username]/uploads
sudo chmod 770 /var/inbound/[username]/uploads
Run Code Online (Sandbox Code Playgroud)
注意: /var/inbound/[username]/ 和 /var/inbound/[username]/uploads/ 目录都需要一组特殊的权限。执行以下命令,将 [username] 替换为相关用户。
现在我将免除您剩余的 SSH/SFTP 配置。但足以说明我可以让用户被监禁到他们自己的目录中,并且我使用 SCPONLY 禁用了他们的 SSH/控制台访问。
现在事情变得复杂了......
我现在需要让 SMB 访问特定帐户(我们称之为fileaccess)到 /var/inbound/ 目录,该目录可从 Windows Server …