Найти - Пользователи
Полная версия: Apache -> subprocess.Popen -> permission denied
Начало » Django » Apache -> subprocess.Popen -> permission denied
1
quadright
Django запущено через apache+wsgi.
Запускаю сторонний скрипт из джанги:
cmd = 'cat <<EOF >>  test2.txt\n test EOF'
subprocess.Popen( cmd, shell = True, stdout=open('test.log','w') )
Вываливается ошибка: Permission denied: ‘test.log’
Конкретно с лог-файлом всё понятно, если выставить файлу права 777, то лог запишется. Но если нужно запустить скрипт с доступом к БД или еще чему-нить этакому.
Вопрос: как задать юзера от которого будет выполняться скрипт? Или это надо в апаче настройки крутить? Подскажите
Документацию на англ. читал, но видимо недостаточно моего английского чтоб найти / понять этот ньюанс.
bw
Изменить пользователя может только root. Но я бы не запускал скрипты из под него. Можете приспособить sudo или suid. Если родительский и дочерний процесс могут работать под одним пользователем, есть вариант настроить Apache так, что бы родительский процесс (скрипт FCGI я полагаю) запускался под кем надо.

..bw
quadright
Решение простейшее, для тех кто знаком с chmod в linux'e. Сегодня после выходных, разобрался как это делается
Апач запускается из под пользователя www-data, посредством chmod просто надо обеспечить этому пользователю весь необходимый доступ к стороннему скрипту. И понятно если в скрипте подгружаются доп.модули, то и до них доступ обеспечить.

Всё больше linux начинаю любить
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB