Позвольте мне сначала сказать, что есть множество тем по этому поводу, и я уверен, что уже видел их все. По-прежнему, никакие решения не помогают.
Я установил 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-клиент менял разрешения :)
У меня была аналогичная проблема, мои файлы были загружены с разрешения 600
и папки были с 700
.
Мне пришлось изменить local_umask к 022
чтобы получить правильные разрешения, которые должны быть установлены, когда файлы загружаются поверх FTP over TLS
шифрование.
# in etc/vsftpd.conf
local_umask=022
Это сделало настройку разрешений для загруженных файлов 644
и папка быть 755
Затем, конечно, мне пришлось перезапустить службу vsftpd, используя
systemctl restart vsftpd
Используя local_umask
и file_open_mode
как вы описываете, работает должным образом в системе, которую я имею.
Вы не забыли перезапустить службу vsftpd после внесения изменений?