5

目前正在运行 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 上,cfdi​​rectory action = "list" 不会在模式列中返回任何信息。

使用权限为 644,777,111 的重命名文件夹似乎不会影响我在 FileZilla 中可以查看的文件夹的权限。

这是否意味着 CF 一开始就无法更改文件夹权限?

4

1 回答 1

2

听起来您在 Linux 服务器上运行 ColdFusion。为此,我建议您阅读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
于 2014-08-12T18:04:33.947 回答