Скрипт Apache CGI Не может перезаписать файл, к которому у него есть полные права доступа

#apache #permissions #cgi

#apache #разрешения #cgi

Вопрос:

Возникла странная проблема с коробкой Solaris 10. У меня есть cgi-скрипт (perl), которому необходимо перезаписать файл. У нас нет suexec, запущенного на Apache, поэтому у каталога назначения есть полный доступ (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:

Если у вас нет 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