Apache CGI脚本无法覆盖它具有完全权限的文件

时间:2011-06-02 21:00:02

标签: apache permissions cgi

在Solaris 10机器上遇到奇怪的问题。我有一个需要覆盖文件的cgi脚本(perl)。我们没有在Apache上运行suexec,因此目标目录具有完全(777)访问权限,因此Apache可以写入它。

问题是CGI脚本能够将新文件写入目录但不会覆盖现有文件。

    **Directory permissions for file destination:** 

    drwxrwxrwx 146 myuser white      32768 Jun  2 20:46 dest-dir

    **File Permissions of file that needs to be over written:** 

    -rw-r--r--   1 myuser white      0 Jun  2 20:50 cgitestfile

任何人都知道解决这个问题的简单解决方案吗?

1 个答案:

答案 0 :(得分:0)

如果文件没有+ w,则无法写入(或覆盖)它。由于你对目录有+ w,删除文件,然后重新创建它。

echo "Hello" >file; #Does not work, can't +w to file!

cat file >tempfile; #works fine, +w on directory allows creating a new file 
echo "Hello" >tempfile; #Same thing
mv tempfile file; #Works because of +w on directory