Hi
I'm running PHP in safe mode, and have symlinked executables to the
execution_dir, that works great. With one exception, it is not
possible to check the existence of the files, before executing them.
It seems to me that stat / lstat resolves the ownership of the orig
executables and safe_mode decides that I cannot have access, which is
true, but I only want to know if the files that I'm about to execute,
ie. the symlinks, exists.
Is this a bug, or have I misunderstood something. Any suggestions on
how I can solve this.
Example:
<?php
$smed = ini_get('safe_mode_exec_dir');
$id = $smed.'identify';
var_dump(stat($id));
var_dump(lstat($id));
echo '<br />is_file: ';
var_dump(is_file($id));
echo '<br />is_link: ';
var_dump(is_link($id));
echo '<br />is_executable: ';
var_dump(is_executable($id));
echo '<br />is_readable: ';
var_dump(is_readable($id));
echo '<br /><br /><br />';
passthru($id.' -version');
?>
Result:
Warning: stat() [function.stat]: SAFE MODE Restriction in effect. The script whose
uid/gid is 33/33 is not allowed to access /var/lib/typo3/shared/smexec/identify owned
by uid/gid 0/0 in /var/www/file_existence_check.php on line 6
Warning: stat() [function.stat]: stat failed for /var/lib/typo3/shared/smexec/identify
in /var/www/file_existence_check.php on line 6
bool(false)
Warning: lstat() [function.lstat]: SAFE MODE Restriction in effect. The script whose
uid/gid is 33/33 is not allowed to access /var/lib/typo3/shared/smexec/identify owned
by uid/gid 0/0 in /var/www/file_existence_check.php on line 7
Warning: lstat() [function.lstat]: Lstat failed for
/var/lib/typo3/shared/smexec/identify in /var/www/file_existence_check.php on line 7
bool(false)
is_file: bool(false)
is_link: bool(false)
is_executable: bool(false)
is_readable: bool(false)
Version: ImageMagick 6.0.6 08/31/04 Q16 http://www.imagemagick.org Copyright:
Copyright (C) 1999-2004 ImageMagick Studio LLC
--
./Christian Jul Jensen
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php