На моем сервере Ubuntu 12 есть следующая конфигурация:
1 - vsftpd
установлен и настроен с настройками файла конфигурации:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dir_message_enable=YES
use_locatime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
#chroot_list_enable=YES (commented out)
chroot_list_file=/etc/vsftpd.chroot_list
secure_choot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/ect/ssl/private/vsftpd.pem
user_config_dir=/etc/vsftpd/user_conf
2 - У меня есть настройка пользователя ftp, в которой их домашний каталог
/var/www
3 - Когда я подключаюсь к серверу с помощью filezilla с новым именем пользователя ftp, filezilla автоматически показывает корневой веб-каталог по желанию.
Проблема в разрешениях файлов; каждый файл, который ftpuser загружает в /var/www
каталог установлены таким образом, что и владелец, и группа файла принадлежат пользователю ftp.
Также разрешения
-rw-------
Это, конечно, означает, что каждый файл, к которому вы пытаетесь получить доступ через стандартный браузер, получает предупреждение о запрещении.
В /var/www
Владелец - www-data, а группа - webroot.
webroot - это группа, которую я создал отдельно и в которую добавил пользователя ftp вместе с несколькими другими.
Как мне лучше всего исправить это, чтобы браузер std не получал запрещенное предупреждение при попытке просмотреть файл, загруженный пользователем ftp?
Во-первых, я считаю, что вам следует сделать chmod g+s
на / var / www. Это гарантирует, что файлы, созданные в этом каталоге, наследуют группу из родительского каталога.
Во-вторых, похоже, что режимом файла можно управлять с помощью значения vspftpd.conf:
file_open_mode
The permissions with which uploaded files are created. Umasks are applied on top of
this value. You may wish to change to 0777 if you want uploaded files to be executable.
Default: 0666
Если у вас все еще возникают проблемы, взгляните на umask
для пользователя FTP это может быть установлено в пользовательской ~/.bashrc