![组的 SFTP 服务器写入权限](https://linux22.com/image/688971/%E7%BB%84%E7%9A%84%20SFTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%86%99%E5%85%A5%E6%9D%83%E9%99%90.png)
我知道这方面有很多问题,但对我来说都不起作用。所以我在 Ubuntu 4.8 上有一个启用了 sshd 的 ftp 服务器。我希望所有者的组对每个上传的文件都有写入权限。
现在文件夹的权限是:drwxrwxr-x
并且每个上传的文件都有权限-rw-r--r--
我已经尝试过但没有任何改变(使用 FileZilla3.21.0
或sftpd
直接在 Mac 上使用命令):
- 设置
local_mask=0002
/etc/vsftpd.conf
- 设置
Subsystem sftp /usr/lib/openssh/sftp-server -u 002
或Subsystem sftp /usr/lib/openssh/sftp-server -u 0002
在/etc/ssh/sshd_config
我已经重新启动vsftpd
并sshd
,但仍然只有该组的读取权限。这是什么原因?
答案1
这SFTP 协议包括客户端设置服务器上文件属性的操作。这意味着 SFTP 客户端可以设置上传文件的权限,而不管 umask 是什么。
我可以想到三种方法来实现你想要的:
要求远程用户设置其客户端以禁用对上传文件的设置权限(如果可能)。例如,您可以在这个 WinSCP 对话框。
在服务器上设置一个自动化流程来扫描包含这些文件的目录,并调整任何新上传的文件的权限。
在 SFTP 服务器中禁用 SSH_FXP_SETSTAT 操作。对于OpenSSH 服务器,你必须改变源代码sftp 服务器程序。市场上有商业 SSH/SFTP 解决方案,其中之一可能允许禁用此功能。