Как установить владение группой по умолчанию для файлов в каталоге?

19

Я запускаю веб-приложение CakePHP на Linode LAMP. Я обнаружил, что мои временные файлы создаются с правами root: root. Но веб-приложение работает с разрешениями Apache (www-data). Это вызывает предупреждения каждый раз, когда создается новый файл, потому что он недоступен для записи для пользовательских www-данных.

Как изменить владельца по умолчанию на www-data для любых новых файлов, созданных во временной папке?

Спасибо за вашу помощь!


источник

Ответы:

22

Чтобы назначить владение группой по www-данным независимо от uid / gid процесса, который создает файл, вам нужно установить бит setgid в каталоге.

    sudo chown :www-data <dir>
    sudo chmod g+s <dir>

Обратите внимание, что вы также должны сделать каталог доступным для записи любым процессом, который будет создавать файлы. Если это кто-то, кроме root, вам также может понадобиться, chmod o+rwxчтобы все работало правильно.

CodeGnome
источник
Как насчет подкаталогов?
mcont
Добавление флага -R к chown и chmod делает эту команду рекурсивной. Таким образом, приведенные ниже команды назначат владельца группы по умолчанию для <dir>, а также для всех подкаталогов в <dir>: sudo chown -R :www-data <dir>иsudo chmod -R g+s <dir>
Josh Wieder