首先我要说的是,关于这个问题有很多话题,我相信我现在已经看过了。但似乎没有一个解决方案能起到作用。
我安装了 vsftpd。创建了一个用户 ftp-data。现在我需要用户 ftp-data 上传的文件具有 755 权限。解决这个问题应该很简单,只需添加:
local_umask=002
file_open_mode=0755
但这并没有帮助,然后我尝试了许多不同的方法,但仍然没有帮助。
我补充道:
chmod_enable=YES
还是没有帮助。
此刻,我觉得我遗漏了一些非常简单而明显的东西,只是找不到它。也许有人能帮我找到我遗漏的东西。
这是我的配置文件:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
listen=YES
local_root=/var/www/ftp-gallery
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
编辑:解决了。这是我使用的客户端的问题。FTP 客户端本身正在更改权限 :)
答案1
正如您所描述的那样,使用local_umask
和file_open_mode
在我手头的系统上按预期工作。
您是否记得在进行更改后重新启动 vsftpd 服务?
答案2
我遇到了类似的问题,我的文件是经过许可上传的,600
并且文件夹是经过许可的700
。
我不得不改变本地掩码以便022
在通过加密上传文件时设置正确的权限FTP over TLS
。
# in etc/vsftpd.conf
local_umask=022
这使得上传文件的权限设置为,644
文件夹设置为755
,当然,我必须使用以下命令重新启动 vsftpd 服务:
systemctl restart vsftpd