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

«Permission denied» при выполнении `git pull` в стеке (Apache -> Django -> subprocess)

У меня есть приложение Django на сервере Apache, которое использует subprocess.Popen сделать git pull в репо, хранящемся на этом сервере.

Ему удается получить новую фиксацию для сервера, но он не может выполнить проверку:

error: git checkout-index: unable to create file run_gui.py (Permission denied)

Точно такое же приложение работает в моей системе Windows, имея возможность успешно извлекать репозиторий git с пульта дистанционного управления. Но на моем сервере Linux он не работает с указанным выше сообщением об ошибке. Когда я ssh на сервер, мне удается сделать git pull в оболочке, и он завершается без ошибок. Но не из приложения Django.

Я подумал, что, возможно, это проблема с разрешениями; Но я проверил, под каким пользователем работает Django, используя тот же subprocess.Popen процедура для запуска id. У меня есть свой пользователь:

uid=608(coolrr) gid=608(coolrr) groups=608(coolrr)

Это пользователь, которому принадлежит репо.

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

Кто-нибудь знает, что происходит?

Я нашел свою ошибку; Я использовал неправильный «рабочий каталог». На этот раз я дал Popen а cwd аргумент, который я установил для пути к моему репо, и он работал без проблем.