Сценарий Apache CGI не может перезаписать файл, к которому у него есть полные разрешения - PullRequest
0 голосов
/ 03 июня 2011

Возникла странная проблема на коробке 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 Ответ

0 голосов
/ 03 июня 2011

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