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

Как добавить права на запись в php / apache?

У меня такой сценарий:
Там есть папка с названием «загрузки». Он принадлежит "root", а его группа - "webmasters". Разрешения установлены на 755.

drwxrwsr-x  2 root webmasters 4096 Mar 20 22:49 upgrade

С этой настройкой я не могу создавать файлы с помощью php в «обновлении». Если я изменю права доступа на 777, я смогу создавать файлы при обновлении.

Но дело обстоит так:
Мой Apache работает как www-data. Поэтому я добавил группу веб-мастеров в качестве основной к пользовательским www-data.

root@mymachine: /var/www# id www-data
uid=33(www-data) gid=1002(webmasters) groups=1002(webmasters),33(www-data)

Так зачем мне ставить разрешения «апгрейд» на 777? Если в папке «upgrade» есть группа «webmasters», а пользователь «www-data» имеет группу / is in the group webmasters, а права доступа установлены на 775, тогда все члены группы веб-мастеров должны получить права «7» и должен уметь читать, писать и выполнять.

Я уже перезапустил свой компьютер, поэтому я уверен, что все назначения групп правильно распознаются системой. Так что я делаю не так?

edit: // Когда я меняю группу с "webmasters" на "www-data", я получаю права на запись с 775. Когда я снова переключаю группу на webmasters, это не работает. Вопрос в том, почему? Пользовательские www-данные есть в обеих группах - www-data и webmasters.

Apache работает как пользователь www-data и группа www-data. Группа явно указана в ее конфигурации, и добавление пользователя в другие группы не повлияет на это.

Вы можете изменить группу, которую запускает Apache, как в его httpd.conf.