#32851 [Opn->Fbk]: open_basedir restrictions do not work with file creation in symlinked directory
ID: 32851
Updated by: sniper@php.net
Reported By: stegelmann at rz dot rwth-aachen dot de
-Status: Open
+Status: Feedback
Bug Type: Safe Mode/open_basedir
Operating System: SunOS 5.8
PHP Version: 5.0.4, 4.3.11
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
Previous Comments:
------------------------------------------------------------------------
[2005-04-28 00:06:15] stegelmann at rz dot rwth-aachen dot de
I've read the documentation. At the risk of repeating myself:
If the symlink was resolved - I would expect at least one of the given
open_basedirs to match (as both possibilities are specified - resolved
and unresolved).
If this is not the intended way it should work, why is there a
difference between creating a new and opening an existing file (as
opening an existing file in the symlinked directory works, while
creating a new file fails)?
------------------------------------------------------------------------
[2005-04-27 23:28:23] tony2001@php.net
This is expected behaviour and it's documented in the docs:
"When a script tries to open a file with, for example, fopen() or
gzopen(), the location of the file is checked. When the file is outside
the specified directory-tree, PHP will refuse to open it. All symbolic
links are resolved, so it's not possible to avoid this restriction with
a symlink."
http://www.php.net/manual/en/features.safe-mode.php
Pay attentions to the last sentence.
------------------------------------------------------------------------
[2005-04-27 14:45:30] stegelmann at rz dot rwth-aachen dot de
To perhaps clarify - after the file was created with your code:
$f = fopen("/export2/home/websites/it/test", "w");
the previously unsuccessful attempt:
$f = fopen("/export/home/websites/it/test", "w");
does work (as I mentioned in the initial report).
So just the file's creation fails in combination with the symlink.
------------------------------------------------------------------------
[2005-04-27 14:29:51] stegelmann at rz dot rwth-aachen dot de
$f = fopen("/export2/home/websites/it/test", "w");
does work.
------------------------------------------------------------------------
[2005-04-27 12:59:39] sniper@php.net
Does this work:
$f = fopen("/export2/home/websites/it/test", "w");
ie. writing to the actual directory..?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32851
--
Edit this bug report at http://bugs.php.net/?id=32851&edit=1
Thread (10 messages)