我在 CentOS 7.4 上有一个 SFTP 服务器(通过标准sshd
),我想调整服务器,以便用户可以在他们的目录中下载文件,删除在他们的目录中的文件,但不能上传新文件或覆盖文件。
我可以使用chmod
来设置rw
,但我不希望用户能够上传新文件或修改它们,而只是下载它们。
这里有什么技巧可以使用吗?(似乎大多数人都想阻止删除,并允许添加/修改,而我想要的则相反。)
我还启用了 SELinux 并使其运行,如果这也有帮助的话。
对于用户来说chmod 555
,我得到的最接近的结果是,但是我无法删除文件,只能读取它。如果我进入目录,我可以读取和删除文件,并且无法修改现有文件,但仍然可以添加新文件。chown
chmod 755
此外,我的相应部分/etc/ssh/sshd_config
:
Match Group sftpusers
ChrootDirectory /zfspool/sftp/%s
ForceCommand internal-sftp
其余均为默认设置。SFTP 服务器是:
Subsystem sftp /user/libexec/openssh/sftp-server
答案1
您可以使用 sftp-server 的黑名单功能执行此操作,在 sshd_config 中设置:
Subsystem sftp /usr/libexec/openssh/sftp-server -P write
或者如果使用 internal-sftp:
ForceCommand internal-sftp -P write
您可以在白/黑名单模式下控制允许的请求,请参阅 man sftp-server 和 sftp-server -Q 请求以获取服务器上可用请求的列表。