Разрешение папки 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" не возвращает никакой информации в столбце режима.

Также

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

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


person Daniel Cook    schedule 12.08.2014    source источник
comment
Отличный вопрос! На самом деле я испытал нечто почти идентичное и до сих пор не нашел решения. stackoverflow.com/ вопросы/23892638/   -  person Evik James    schedule 12.08.2014
comment
Используете ли вы какое-либо программное обеспечение панели управления на своем сервере? Я работаю в Windows и запускаю plesk, а в plesk есть часть обслуживания, которая иногда сбрасывает разрешения и может сломать что-то.   -  person steve    schedule 12.08.2014
comment
Это Linux, и я только когда-либо видел инфраструктуру, использующую командную строку, поэтому я не думаю, что это так. Спасибо   -  person Daniel Cook    schedule 13.08.2014


Ответы (1)


Похоже, вы используете ColdFusion на сервере Linux. Для этого я бы посоветовал вам прочитать об инструменте auditd и использовать его для наблюдения за вашим каталогом. посмотреть, что вызывает изменение. Это даст вам процесс, который вызывает изменение, но если это 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
person Goyuix    schedule 12.08.2014
comment
спасибо за предложение, это то, что я должен передать нашей команде по инфраструктуре для рассмотрения возможности реализации. - person Daniel Cook; 13.08.2014