如何解决 apache 中的权限问题。我尝试执行的初始任务是将 mura 插件上传到 ColdFusion9 的临时目录。但是,后来我发现这个问题不是 ColdFusion 问题。
ColdFusion 以 apache 用户身份运行:
# ps aux | grep coldfusion
apache 31016 0.0 0.0 2104 664 ? S Oct27 0:00 /opt/coldfusion9 ...
apache 31017 0.7 24.5 933260 513976 ? Sl Oct27 18:02 /opt/coldfusion9 ...
Apache 可以访问我尝试写入的目录:
# namei -m /opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/
f: /opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/
drwxr-xr-x /
drwxr-xr-x opt
drwxrwxrwx coldfusion9
drwxrwxr-x runtime
drwxrwxr-x servers
drwxr-xr-x coldfusion
drwxr-xr-x SERVER-INF
drwxr-xr-x temp
drwxr-xr-x wwwroot-tmp
# ls -la /opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/
total 8
drwxr-xr-x 2 apache apache 4096 Oct 28 15:46 .
drwxr-xr-x 3 apache root 4096 Oct 27 21:33 ..
未为目录指定扩展属性:
#lsattr /opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/
------------- /opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/temp/wwwroot-tmp/afile
我将 apache 用户的 shell(临时)更改为 bash,登录到 shell 并能够写入目录。
Selinux 已禁用。
fixweb 已运行。
我创建了两个脚本,tmp.cfm 和 tmp.php,它们只是尝试在目标目录中写入文件,在浏览器中浏览到 tmp 脚本,但都无法写入目录。
我还在 apache 中为该目录创建了一个别名:
Alias /atemp /target-dir
<Location /atemp>
Order allow,deny
Allow from all
</Location>
重新启动 apache 并且仍然无法访问该目录。
在使用 Wordpress 时我看到过类似的权限问题。
我怀疑这与我的 apache 二进制文件有关,但我还没有收到该二进制文件提供商的回复,所以我希望得到更多人的帮助。
编辑:我会考虑其他可能导致这种情况但我还没有考虑到的问题。
答案1
事实证明,这毕竟是 Adobe ColdFusion 9 的问题。