ColdFusion文件夹权限变为只读

Dan*_*ook 5 coldfusion file-permissions cffile coldfusion-10

目前运行ColdFusion 10,但这可能是多年来一直存在的问题,也许是整个CF6/7.

作为CMS的一部分,验证的一部分是将图像上载到目录,例如

<cffile action="UPLOAD" filefield="image" destination="media/img/" nameconflict="MAKEUNIQUE" accept="image/jpeg,image/gif,image/pjpeg" mode="644">
Run Code Online (Sandbox Code Playgroud)

然后通过检查尺寸的脚本读取它们.

如果一切都通过,则进程脚本将其移动到其目标目录,例如

<cffile action="MOVE" source="media/img/imagename" destination="media/img/#hexdir#/imagename" mode="644">
Run Code Online (Sandbox Code Playgroud)

如果失败则应删除.

<cffile action="DELETE" file="media/img/imagename">
Run Code Online (Sandbox Code Playgroud)

每隔一段时间/ img /目录变为只读,就无法写入该文件.但我无法确定原因.

有没有我不知道的错误?有任何想法吗?

谢谢

附加信息

我考虑过使用CFDirectory来更改脚本中的文件夹权限,因此如果再次发生,可以快速解决.

我发现了两个问题

在UNIX和Linux上,cfdi​​rectory action ="list"不会返回mode列中的任何信息.

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

这是否意味着CF首先无法更改文件夹权限?

Goy*_*uix 2

听起来您正在 Linux 服务器上运行 ColdFusion。为此,我建议您阅读auditd工具并使用它来观察您的目录以查看导致更改的原因。它将为您提供导致更改的进程,但如果是 ColdFusion,您仍然必须追踪导致该更改的 CFM/CFC。

请注意,如果您不断地将文件移入和移出目录,您的审核日志可能会变得嘈杂。

假设您的 img 目录类似于/mnt/media/img,只需向 /etc/audit/audit.rules 添加一条规则,如下所示,然后重新启动守护进程:

-w /mnt/media/img
Run Code Online (Sandbox Code Playgroud)

然后您应该能够清除(或设置)该文件夹的只读位并看到它显示在日志中(可能是:/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
Run Code Online (Sandbox Code Playgroud)