#49620 [Opn->Fbk]: is_writeable does not work using netshare and normal user rights
ID: 49620 Updated by: paj...@php.net Reported By: philipp at servicemail24 dot de -Status: Open +Status: Feedback Bug Type: *Directory/Filesystem functions Operating System: win32 only - Windows XP SP2 PHP Version: 5.3.0 Assigned To: pajoye New Comment: I'm not sure to see what's the difference with your config. Questions: - How did you configure the share (permissions) on 10.1.1.1 - is it a different host than the test machine? - Pls simply try using runas, I have no idea what runaspc does internally :). Or simply login using testuser Previous Comments: [2009-09-23 08:10:35] philipp at servicemail24 dot de I extended my test script with further file sys related functions: if(@!is_dir($folder)) { echo('FAILED is_dir: ' . $folder . "\n"); } else { echo "OK is_dir: " . $folder . "\n"; } if ($dh = @opendir($folder)) { closedir($dh); echo "OK opendir: " . $folder . "\n"; } else { echo('FAILED opendir: ' . $folder . "\n"); } if(@!is_readable($folder)) { echo('FAILED is_readable: ' . $folder . "\n"); } else { echo "OK is_readable: " . $folder . "\n"; } if(@!is_writeable($folder)) { echo('FAILED is_writeable: ' . $folder . "\n"); } else { echo "OK is_writeable: " . $folder . "\n"; } $filename = $folder . '\\test_' . time() . '.txt'; $content = 'php test ' . time(); if(@!file_put_contents($filename, $content)) { echo('FAILED file_put_contents: ' . $filename . "\n"); } else { echo "OK file_put_contents: " . $filename . "\n"; } if(@!is_readable($filename)) { echo('FAILED is_readable: ' . $filename . "\n"); } else { echo "OK is_readable: " . $filename . "\n"; } if(@!is_writeable($filename)) { echo('FAILED is_writeable: ' . $filename . "\n"); } else { echo "OK is_writeable: " . $filename . "\n"; } if(@!file_get_contents($filename) == $content) { echo('FAILED file_get_contents: ' . $filename . "\n"); } else { echo "OK file_get_contents: " . $filename . "\n"; } if(@!unlink($filename)) { echo('FAILED unlink: ' . $filename . "\n"); } else { echo "OK unlink: " . $filename . "\n"; } all functions are fine expect is_readable and is_writeable: 5.3.x result: OK is_dir: \\10.1.1.1\share OK opendir: \\10.1.1.1\share FAILED is_readable: \\10.1.1.1\share FAILED is_writeable: \\10.1.1.1\share OK file_put_contents: \\10.1.1.1\share\test_1253693124.txt FAILED is_readable: \\10.1.1.1\share\test_1253693124.txt FAILED is_writeable: \\10.1.1.1\share\test_1253693124.txt OK file_get_contents: \\10.1.1.1\share\test_1253693124.txt OK unlink: \\10.1.1.1\share\test_1253693124.txt OK is_dir: \\srv\share OK opendir: \\srv\share FAILED is_readable: \\srv\share FAILED is_writeable: \\srv\share OK file_put_contents: \\srv\share\test_1253693124.txt FAILED is_readable: \\srv\share\test_1253693124.txt FAILED is_writeable: \\srv\share\test_1253693124.txt OK file_get_contents: \\srv\share\test_1253693124.txt OK unlink: \\srv\share\test_1253693124.txt 5.2.x result: OK is_dir: \\10.1.1.1\share OK opendir: \\10.1.1.1\share OK is_readable: \\10.1.1.1\share OK is_writeable: \\10.1.1.1\share OK file_put_contents: \\10.1.1.1\share\test_1253693124.txt OK is_readable: \\10.1.1.1\share\test_1253693124.txt OK is_writeable: \\10.1.1.1\share\test_1253693124.txt OK file_get_contents: \\10.1.1.1\share\test_1253693124.txt OK unlink: \\10.1.1.1\share\test_1253693124.txt OK is_dir: \\srv\share OK opendir: \\srv\share OK is_readable: \\srv\share OK is_writeable: \\srv\share OK file_put_contents: \\srv\share\test_1253693124.txt OK is_readable: \\srv\share\test_1253693124.txt OK is_writeable: \\srv\share\test_1253693124.txt OK file_get_contents: \\srv\share\test_1253693124.txt OK unlink: \\srv\share\test_1253693124.txt [2009-09-23 07:30:12] philipp at servicemail24 dot de php-5.3.2-dev-nts-Win32-VC9-x86-200909221530.zip does not help either. The problem does not occur using samba servers. But it occurs with all windows severs I have. I am logged in at my workstation using my normal user account with admin rights. Then I use RUNASSPC to get a cmd shell. http://www.robotronic.de/runasspcEn.html This is my batch file: rem @ECHO OFF REM = = = = = MODIFY HERE TO FIT TO YOUR PATH = = = = SET TESTUNITPATH=D:\php\ SET TESTUNITCOMMAND=c:\php\5.3.2\php.exe test.php SET ELSDO
#49620 [Opn->Fbk]: is_writeable does not work using netshare and normal user rights
ID: 49620 Updated by: paj...@php.net Reported By: philipp at servicemail24 dot de -Status: Open +Status: Feedback Bug Type: *Directory/Filesystem functions Operating System: Windows XP SP2 PHP Version: 5.3.0 -Assigned To: +Assigned To: pajoye New Comment: Under which SAPI do you run it? CLI, FCGI or apache? Can you try again using http://windows.php.net/downloads/qa/test/php-5.3.2-dev-nts-Win32-VC9-x86.zip please? Previous Comments: [2009-09-22 07:52:52] philipp at servicemail24 dot de Description: PHP 5.3.0 and 5.3.1RC1 has a bug in the is_readable and is_writeable function if you execute a script with normal windows user rights. The same test script works fine using PHP 5.2.x. Providing admin rights for the user solves the problem but this is not a long term solution for us. All tested PHP releases are VC6 TS PHP 5.2.10 -> OK PHP 5.2.11 -> OK PHP 5.3.0 -> FAILED PHP 5.3.1RC1 -> FAILED Reproduce code: --- $folders = array( '10.1.1.1\\share', 'srv\\share', 'd:/temp' ); foreach($folders as $folder) { if(@!is_readable($folder)) { echo('FAILED is_readable: ' . $folder . "\n"); } else { echo "OK is_readable: " . $folder . "\n"; } if(@!is_writeable($folder)) { echo('FAILED is_writeable: ' . $folder . "\n"); } else { echo "OK is_writeable: " . $folder . "\n"; } $filename = $folder . '\\test.txt'; if(@!file_put_contents($filename, 'php test')) { echo('FAILED file_put_contents: ' . $filename . "\n"); } else { echo "OK file_put_contents: " . $filename . "\n"; } } Expected result: OK is_readable: \\10.1.1.1\share OK is_writeable: \\10.1.1.1\share OK file_put_contents: \\10.1.1.1\share\test.txt OK is_readable: \\srv\share OK is_writeable: \\srv\share OK file_put_contents: \\srv\share\test.txt OK is_readable: d:/temp OK is_writeable: d:/temp OK file_put_contents: d:/temp\test.txt Actual result: -- FAILED is_readable: \\10.1.1.1\share FAILED is_writeable: \\10.1.1.1\share OK file_put_contents: \\10.1.1.1\share\test.txt FAILED is_readable: \\srv\share FAILED is_writeable: \\srv\share OK file_put_contents: \\srv\share\test.txt OK is_readable: d:/temp OK is_writeable: d:/temp OK file_put_contents: d:/temp\test.txt -- Edit this bug report at http://bugs.php.net/?id=49620&edit=1