Мой скрипт cgi не может записать в папку cgi-bin Apache - PullRequest
3 голосов
/ 28 октября 2009

Я работаю над скриптом cgi версии Python, который должен создавать файлы img (которые будут показаны на веб-странице) в папке cgi-bin.

Но это не так с: [Среда, 28 октября, 16:13:51 2009] [ошибка] [клиент :: 1] OSError: [Errno 13] Отказано в доступе: «средний»

[Примечание] 'Average /' - это папка, которую сценарий cgi собирается сначала создать для сохранения этих файлов img.

Я попытался дать + x разрешение сценарию cgi, но все равно не получилось. Это происходит как на Win, так и на Mac.

Кстати, я работаю с настройками Apache по умолчанию. Я ничего не изменил после установки Apache.

Ответы [ 2 ]

14 голосов
/ 28 октября 2009

Вы должны дать пользователю веб-сервера разрешение на запись в папку cgi-bin. Обычно пользователь веб-сервера выглядит как nobody и не входит в ту же группу, что и владелец папки, поэтому это означает, что cgi-bin может быть доступен для записи всем пользователям: Примечание: Это действительно плохая идея.

chmod a+rwx cgi-bin

(или в Windows настройка разрешений на cgi-bin для предоставления всем «Полного контроля».)

Теперь любой пользователь на вашем сервере или любой скрипт, который не проверяет свои имена файлов должным образом, может создать файл в cgi-bin, где Apache будет интерпретировать его как скрипт CGI и выполнить. Это хороший способ владеть вашим сервером.

Файлы, написанные во время выполнения, должны помещаться в отдельную папку «data», вне cgi-bin (и предпочтительно вне корневого веб-каталога, связанного с Alias), с настройкой Apache для запрета любого вида сценария или htaccess из этой папки. Затем вы можете установить «данные» 777, или, что еще лучше, вместо этого они будут принадлежать пользователю веб-сервера.

0 голосов
/ 28 октября 2009

В сообщении об ошибке сообщается о правах доступа для папки average/, а не файла cgi.

РЕДАКТИРОВАТЬ: Итак, ваш скрипт на python (который работает как на Win, так и на Mac) отвечает за создание папки и файлов img?

Вам определенно следует проверить свой сценарий и разрешения для папки parent , в которой будет создано среднее значение /.

Если это не просто проблема с разрешениями, как следует из сообщения об ошибке, вам потребуется эксперт по Python.

...