在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
任何人都知道解决这个问题的简单解决方案吗?
答案 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