#32851 [Opn->Fbk]: open_basedir restrictions do not work with file creation in symlinked directory

From: Date: Sun, 03 Jul 2005 23:05:30 +0000
Subject: #32851 [Opn->Fbk]: open_basedir restrictions do not work with file creation in symlinked directory
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-81335@lists.php.net to get a copy of this message
 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)

« previous php.bugs (#81335) next »