vsftpd 似乎忽略了 umask

vsftpd 似乎忽略了 umask

我配置了我的vsftpd虚拟用户以允许上传文件。但是我希望所有上传的文件都不可下载,从而剥夺潜在攻击者存储其恶意文件的用处。

所以我输入了/etc/vsftpd/vsftpd.conf

file_open_mode=0777
anon_umask=0577
local_umask=0577

我认为其中一个*_umask=0577是多余的,但它似乎是无害的,并且它涵盖了我所有的基础。

但是,当我上传文件时,它会出现:

-rw------ (0600)许可,而不是--w------ (0200)

问题是:为什么?如何解决这个问题?

顺便说一句,我当前的配置似乎做了正确的事情,那就是只允许上传,而不允许下载上传的文件,但我不明白为什么。


为了完成图片,我还使用了:

virtual_use_local_privs=NO
guest_enable=YES
guest_username=my_ftp_user
chown_uploads=YES
chown_username=my_ftp_user

它工作正常,并能帮助我实施全局 ftp 配额。

答案1

你说:

顺便说一句,我当前的配置似乎做了正确的事情,那就是只允许>上传,而不允许下载已上传的文件,但我不明白为什么。

我认为这是一个问题,我追踪到 virtual_use_local_privs,我需要 virtual_use_local_privs=YES

使用此功能可以让虚拟用户正确使用 local_umask 和 file_open_mode。

答案2

我读过许多帖子和答案,寻找解决此问题的方法。

用户正在将文件上传到我的 vsftpd 服务器,但权限设置不正确。具体来说,我希望使用 chmod 来创建文件664

为了启用此功能,我尝试将 vsftpd.conf 设置local_umask0002。但是没有用。组权限未设置为在上传的文件中写入。

我发现上传文件的用户的umask也需要设置为0002。

但最重要的是,用户 umask 必须通过umask 0002用户~/.bashrc文件中的命令来设置。

如果您在其他地方设置 umask - 例如在~/.bash_profile文件中,它不起作用。

相关内容