Назад | Перейти на главную страницу

vsftpd, похоже, игнорирует umask

Я настроил свой 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.

Ты говоришь:

Между прочим, моя текущая конфигурация, похоже, работает правильно, то есть разрешает только> загрузки и запрещает загрузку загруженных файлов, но я не понимаю, почему.

Я видел это как проблему, которую я отследил до virtual_use_local_privs, мне нужно virtual_use_local_privs = YES

Использование этого позволило виртуальным пользователям правильно использовать local_umask и file_open_mode.

Я прочитал много сообщений и ответов в поисках решения этой проблемы.

Пользователи загружали файлы на мой сервер vsftpd, но разрешения устанавливались неправильно. В частности, я хотел, чтобы файлы создавались с помощью chmod из 664.

Чтобы включить это, я попытался установить vsftpd.conf local_umask к 0002. Это не работает. Разрешения группы не были установлены для записи в загруженный файл.

Я обнаружил, что umask пользователя, загружающего файл, также необходимо установить на 0002.

Но самое главное, umask пользователя должен быть установлен umask 0002 команда в пользователе ~/.bashrc файл.

Если вы установите umask в другом месте - например, в ~/.bash_profile файл не работает.