У меня есть сайт, построенный в Django, который позволяет пользователю загружать файл. Затем этот файл обрабатывается и создается множество других файлов. Эти файлы принадлежат пользователю/группе www-data, членом которого является моя учетная запись. Кто-то другой написал сценарий, который создает эти файлы, и он использует программы, о которых я, к сожалению, не знаком. Эти файлы имеют разрешения rw-r-r--, и я могу удалить их вручную, а также через веб-сайт.(Django) Разрешение отклонено для удаления файла, принадлежащего www-данным (из которых я являюсь участником)
Веб-сайт затем вызывает «collectstatic» Команда Django, которая копирует эти файлы (принадлежащие www-данным) в каталог static_root. Эти файлы, которые я не могу удалить вручную, также не могу заставить веб-сайт вызывать скрипт для их удаления. Я получаю «разрешение отклонено». Первоначально эти файлы имели те же самые переходы, что и те, которые были скопированы из (rw-r-r--), но мне удалось заставить их иметь rw-rw-rw, расширив объект django StaticFilesStorage следующим образом:
from django.contrib.staticfiles.storage import StaticFilesStorage
import os
class MyStaticFilesStorage(StaticFilesStorage):
def save(self, name, content):
os.umask(0)
super(MyStaticFilesStorage, self).save(name, content)
Я только начал работать с Django и Python этим летом, поэтому я действительно не знаком с этим. Любая помощь будет оценена по достоинству. Я не понимаю, как я не могу удалить файл, который имеет разрешение «написать» для группы, членом которой я являюсь.
Edit:
Где я думаю, что проблема заключается: Программа, которая создает файлы создает каталог для них, который имеет drwxrwxrwx разрешения. «collectstatic» копирует этот каталог в мой каталог static_root, а пермиссиями в этом новом каталоге являются drwxr-xr-x.
Большое спасибо за ваш ответ. _Chmod_ также говорит «разрешение отклонено», и у меня нет доступа к команде _sudo_. Созданный исходный каталог имеет полные права на rwx, но при вызове команды _collectstatic_ копия этого каталога имеет разрешения drwxr-xr-x. Я не понимаю, почему _collectstatic_ меняет разрешения. И я знаю, что мое исправление StaticFilesStorage - не лучшая идея - просто отчаяние! – Nagli
Вызов chmod в каталоге работал, когда я делал это из скрипта python, который назывался «collectstatic», большое вам спасибо. – Nagli