我配置了我的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_umask
为0002
。但是没有用。组权限未设置为在上传的文件中写入。
我发现上传文件的用户的umask也需要设置为0002。
但最重要的是,用户 umask 必须通过umask 0002
用户~/.bashrc
文件中的命令来设置。
如果您在其他地方设置 umask - 例如在~/.bash_profile
文件中,它不起作用。