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


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чтобы все работало правильно.


Как насчет подкаталогов?
mcont

Добавление флага -R к chown и chmod делает эту команду рекурсивной. Таким образом, приведенные ниже команды назначат владельца группы по умолчанию для <dir>, а также для всех подкаталогов в <dir>: sudo chown -R :www-data <dir>иsudo chmod -R g+s <dir>
Josh Wieder
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.