chmod u + s в / var / www

У меня проблема с предоставлением прав для правильного пользователя ...

Я хочу запустить Pootle с Apache, поэтому я скачал Pootle. Затем я скопировал его в / var / www, установил и дал права пользователя www-data для всей папки. Насколько хорошо ... теперь я хочу скопировать переведенные файлы из и в каталог-переводчик (например, /var/www/pootle/po/project).
Поэтому я создал группу (www), добавил меня в группу и выполнил

sudo chown -R: www / var / www / pootle

хорошо, так что теперь У меня есть права на запись файлов в каталог, однако, когда apache создает файл, его группа называется www-data ...

sudo chmod -R g + s / var / www / pootle

хорошо, теперь группа всегда "www", как я и хотел ... сейчас вот проблема:
Когда я пишу файлы в / var / www / pootle, они, тем не менее, находятся там, где мой пользователь является владельцем, а не, как я ожидал, как www-данные, хотя я выполнил команда:

sudo chmod -R u + s / var / www / pootle

есть способ, которым я могу сказать, что пользователь, создавший файл, даже если это я, будет www-data?

спасибо заранее :))

2
задан 21 September 2012 в 10:52

2 ответа

Не лучше ли было бы пойти:

chown -R greenit:www-data /var/www/
chmod -R 770 /var/www/pootle

Я бы не рекомендовал следующий бит (в идеале вы должны вручную создавать файлы chmod или chown, но вы можете добавить себя в www- группа данных:

usermod -a -G www-data greenit

Тем не менее, идеальным вариантом было бы найти параметр в Pootle, который указывает, от какого пользователя работать, и изменить его на www-data.

0
ответ дан 21 September 2012 в 10:52

Если вы запускаете chown без предшествующего двоеточия, вы смените владельца. (Используя предыдущее двоеточие, вы меняете группу, как показано выше, и вы также можете запустить chown -R new-owner: newgroup.) Так что, если вы просто запустите

sudo chown -R www-data /var/www/pootle

, вы измените владелец www-data.

«.... когда apache создает файл, его группа называется www-data ...»

Не могли бы вы уточнить, что вы имеете в виду под этим? Apache обслуживает файлы, но не создает их. PHP создает их - но они создаются динамически и передаются непосредственно веб-клиентам (браузерам), они не создаются, а затем сохраняются Apache.

Кажется, твоя проблема связана с владением файлами. Если это так, то более удобным подходом может быть добавление pootle в группу www - поскольку Apache (как правило) требует, чтобы файлы htm (l) принадлежали www для их чтения. Файлы, созданные Pootle, будут иметь такой же идентификатор группы, и вам вообще не нужно будет запускать chown - у Apache будет доступ на чтение к файлам Pootle. См. http://translate.sourceforge.net/wiki/pootle/apache , в котором говорится:

 You need to extract Pootle in a directory accessible to the apache user.

Make sure Apache has read access to all of Pootle's files and write access to the dbs and po subdirectories.

Надеюсь, это поможет.

0
ответ дан 21 September 2012 в 10:52

Другие вопросы по тегам:

Похожие вопросы: