Разрешение папки ColdFusion становится только для чтения

Выпуск ColdFusion 10 в настоящее время, но эта проблема была постоянной в течение многих лет, возможно, на протяжении всего CF6/7.

Как часть CMS, часть проверки заключается в том, что изображения загружаются в каталог, например

<cffile action="UPLOAD" filefield="image" destination="media/img/" nameconflict="MAKEUNIQUE" accept="image/jpeg,image/gif,image/pjpeg" mode="644">

Затем они читаются скриптом, который проверяет размеры.

Если все проходит, сценарий процесса перемещает его в каталог назначения, например

<cffile action="MOVE" source="media/img/imagename" destination="media/img/#hexdir#/imagename" mode="644">

Если это не удается, его следует удалить.

<cffile action="DELETE" file="media/img/imagename">

Время от времени каталог / img / становится доступным только для чтения, файл не может быть записан. Но я не могу определить причину этого.

Есть ли ошибка, о которой я не знаю? есть идеи?

Спасибо

Дополнительная информация

Я подумал об использовании CFDirectory для изменения разрешения папки в скрипте, чтобы его можно было быстро разрешить, если это произойдет снова.

Я нашел две проблемы

В UNIX и Linux cfdirectory action = "list" не возвращает никакой информации в столбце mode.

Также

Использование папки переименования с разрешениями 644 777 111, похоже, не влияет на разрешения папки, которую я могу просматривать в FileZilla.

Может ли это означать, что CF не мог изменить разрешение папки?

1 ответ

Похоже, вы работаете с ColdFusion на сервере Linux. Для этого я бы посоветовал вам прочитать об инструменте audd и использовать его для просмотра каталога, чтобы увидеть, что является причиной изменения. Это даст вам процесс, который вызывает изменение, но если это ColdFusion, вам все равно придется отследить CFM/CFC, который вызывает это изменение.

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

Предполагая, что ваш каталог img что-то вроде /mnt/media/imgпросто добавьте правило в /etc/audit/audit.rules, как показано ниже, и перезапустите демон:

-w /mnt/media/img

Затем вы сможете очистить (или установить) бит только для чтения для этой папки и увидеть, что он отображается в журнале (вероятно, /var/log/audit/audit.log).

type=SYSCALL msg=audit(1407866490.247:114): arch=c000003e syscall=268 success=yes exit=0 a0=ffffffffffffff9c a1=17be0f0 a2=1ff a3=4000 items=1 ppid=2859 pid=3069 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="chmod" exe="/usr/bin/chmod" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
type=CWD msg=audit(1407866490.247:114):  cwd="/root"
type=PATH msg=audit(1407866490.247:114): item=0 name="/media/mnt/img" inode=6171184 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:httpd_sys_content_t:s0
Другие вопросы по тегам