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

Понимание разрешений с ProFTPD (особенно групповая запись)

У меня 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»), так как первый будет применяться ко всем.