У меня proftpd работает под пользователем proftpd. У меня есть новый виртуальный сервер в ProFTPD под названием «example.com», указывающий на /var/www/example.com
. Я поел /var/www/example.com
папка с пользователем example_com и группой www-data. Я установил каталог как SGID (2775). Это позволяет пользователю FTP «example_com» входить в систему и загружать файлы и папки, а пользователю процесса Apache «www-data» разрешается запускать веб-сайт и читать / записывать файлы.
В моем proftpd.conf
, Я установил umask так:
Umask 2664 2775
Моя беда вот в чем. Когда example_com создает новый файл, он устанавливает его как 2644 вместо 2664. А при создании нового каталога он устанавливает его как 2755 вместо 2775. В обоих случаях отсутствует разрешение «групповая запись».
Как включить групповую запись в ProFTPD глобально?
В этом нет ничего специфического для ProFTPd, это стандартная "математика" разрешений POSIX.
Вы смешиваете фактические разрешения для файла и umask. Видеть http://en.wikipedia.org/wiki/Umask для введения.
Согласно документации, вы не можете установить бит SGID в директиве umask; он говорит: «Любые предоставленные аргументы должны быть восьмеричным числом в формате 0xxx».
http://proftpd.org/docs/directives/linked/config_ref_Umask.html
Как намекает Джоши, на самом деле вам нужно "Umask 0002" - umask поразрядно привязан к объекту, а не абсолютной настройке CHMOD. Вам нужно указать его только один раз (а не «umask 0002 0002»), так как первый будет применяться ко всем.