我希望能够通过 SFTP 将文件从一台 Linux 服务器传输到 AWS EC2 上的 Red Hat 8 服务器。
我创建了一个名为 的用户sftpuser
,并希望通过 SFTP 发送给该用户的所有文件都登陆到/testdata/sftp/incoming/
.
/testdata
仅当我使 root 成为和的所有者时,我才设法使其工作/testdata/sftp
,但我需要/testdata
由另一个 Linux 用户拥有,并且授予任何组/其他权限会阻止 SFTP 工作。
Match User sftpuser
ChrootDirectory /testdata/sftp/incoming
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
是否可以将文件通过 sftp 传输到该传入文件夹,但允许其他用户拥有/testdata
?
谢谢
答案1
你为什么想要/testdata
目录由另一个用户拥有?作为sftp internal-sftp
使用 ChrootDirectory 要求,所有指定的路径必须属于根仅限用户。
一种好方法是更改sftpuser
用户的配置,例如:
Match User sftpuser
ChrootDirectory /testdata/sftp/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
请注意,我们删除了incoming
目录;然后重新加载配置:
sudo systemctl reload sshd.service
### sudo service ssh reload ## use this command if not a systemd
现在分别创建incoming
具有特定sftpuser
用户/组权限的目录,例如:
sudo mkdir /testdata/sftp/incoming
sudo chown sftpuser /testdata/sftp/incoming
sudo chmod 755 /testdata/sftp/incoming
现在,可以对路径sftpuser
进行读/写访问。/testdata/sftp/incoming/