Usar o local_umask
e file_open_mode
conforme você descreve funciona conforme o esperado em um sistema que tenho que entregar.
Você se lembrou de reiniciar o serviço vsftpd depois de fazer as alterações?
Deixe-me primeiro dizer que há muitos tópicos sobre isso, e tenho certeza de que já os vi todos. Ainda não das soluções parecem ajudar.
Eu instalei o vsftpd. criou um usuário ftp-data. Agora preciso que os arquivos enviados pelo usuário ftp-data tenham 755 permissões. Resolver isso deve ser tão fácil quanto adicionar:
local_umask=002
file_open_mode=0755
mas isso não ajudou, então eu tentei uma série de variações disso, ainda não ajudou.
Eu adicionei:
chmod_enable=YES
ainda não ajudou.
No momento, acho que estou sentindo falta de algo muito simples e óbvio, apenas não consigo encontrá-lo. Talvez alguém possa me ajudar a encontrar o que estou perdendo.
Este é o meu arquivo de configuração:
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
EDIT: Resolvido. Foi um problema com o cliente que eu estava usando. O próprio cliente FTP estava alterando as permissões :)