By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,854 Members | 833 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,854 IT Pros & Developers. It's quick & easy.

rmdir and chmod help for Windows XP Home!

P: n/a
Hi,

From what I read from the PHP manual, chmod on a Windows platform
should have no effect, and that seems totally normal (unless someone on
sourceforge has a windows port of that!).

I create a directory on my Windows box, and set chmod 777 on it (that
should be full access for everyone if my memory serves me correctly),
but when I want to rmdir that directory, I get a permission denied
message (I can delete contents from that directory with no problems, and
I can create/delete subdirectories either by hand or by script with no
problems.

I tried creating a subdirectory with the same name and without the chmod
in a test script and everything went OK...

I then commented out the chmod line in my script, and now, directory
creation and delete works fine!

So, for PHP on windows (xp home?), chmod 777 makes the file undeletable
for another PHP script, but not for Windows explorer or the windows/dos
command line...?!?!

Anyone got an explanation for this? I'm intrigued!

Cheers,
Daniel

Jul 17 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
chmod and rmdir are UNIX commands which have no effect in a Windows
environment.

-Steve

"Daniel" <da****@dlpage.com> wrote in message
news:3f**********************@nan-newsreader-03.noos.net...
Hi,

From what I read from the PHP manual, chmod on a Windows platform
should have no effect, and that seems totally normal (unless someone on
sourceforge has a windows port of that!).

I create a directory on my Windows box, and set chmod 777 on it (that
should be full access for everyone if my memory serves me correctly),
but when I want to rmdir that directory, I get a permission denied
message (I can delete contents from that directory with no problems, and
I can create/delete subdirectories either by hand or by script with no
problems.

I tried creating a subdirectory with the same name and without the chmod
in a test script and everything went OK...

I then commented out the chmod line in my script, and now, directory
creation and delete works fine!

So, for PHP on windows (xp home?), chmod 777 makes the file undeletable
for another PHP script, but not for Windows explorer or the windows/dos
command line...?!?!

Anyone got an explanation for this? I'm intrigued!

Cheers,
Daniel

Jul 17 '05 #2

P: n/a
Chmod *should not* work, but it does somthing (I have no problems after
desactivating it), and rmdir has been a DOS command since MS-DOS v2 -
It's better known alias in the DOS world is "rd" (just as md & mkdir and
cd & chdir all work on your DOS and Windows command lines...)

As I mentionned, as soon as I commented out the chdir 777 on the
directory that I made with the script x, script y could delete it. When
I uncomment the chdir instruction and re-executed the script x, the
directory delete with script y gives me permission denied messages...

If you want, I can post code...

- Daniel (Who is still confused... :-)

Steven Musumeche wrote:
chmod and rmdir are UNIX commands which have no effect in a Windows
environment.

-Steve

"Daniel" <da****@dlpage.com> wrote in message
news:3f**********************@nan-newsreader-03.noos.net...
Hi,

From what I read from the PHP manual, chmod on a Windows platform
should have no effect, and that seems totally normal (unless someone on
sourceforge has a windows port of that!).

I create a directory on my Windows box, and set chmod 777 on it (that
should be full access for everyone if my memory serves me correctly),
but when I want to rmdir that directory, I get a permission denied
message (I can delete contents from that directory with no problems, and
I can create/delete subdirectories either by hand or by script with no
problems.

I tried creating a subdirectory with the same name and without the chmod
in a test script and everything went OK...

I then commented out the chmod line in my script, and now, directory
creation and delete works fine!

So, for PHP on windows (xp home?), chmod 777 makes the file undeletable
for another PHP script, but not for Windows explorer or the windows/dos
command line...?!?!

Anyone got an explanation for this? I'm intrigued!

Cheers,
Daniel



Jul 17 '05 #3

P: n/a
On Sat, 11 Oct 2003 16:57:40 +0200, Daniel <da****@dlpage.com> wrote:
Chmod *should not* work, but it does somthing (I have no problems after
desactivating it), and rmdir has been a DOS command since MS-DOS v2 -
It's better known alias in the DOS world is "rd" (just as md & mkdir and
cd & chdir all work on your DOS and Windows command lines...)


There is actually a function _chmod in the Windows C runtime library, that
appears to closely matches the Unix equivalent.

http://msdn.microsoft.com/library/de...c_._wchmod.asp

Not really clear how it'd interact with NTFS permissions though.

--
Andy Hassall (an**@andyh.co.uk) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)
Jul 17 '05 #4

P: n/a
A quick example for anyone who wants to try...

(do not enter x. for the line numbers O:-) )

1. mkdir("c:/PHPquickdirtest1");
2. chmod("c:/PHPquickdirtest1", 777);
3. rmdir ("c:/PHPquickdirtest1");
4. mkdir("c:/PHPquickdirtest2");
5. rmdir ("c:/PHPquickdirtest2");

Line 3 gives me a permission denied error. Line 5 works perfectly.
If I comment out line 2, lines 3 (and 5 of course) works perfectly.

This is under XP Home... Anyone care to try under a different version of
'Doze ?

Cheers,
Daniel

Andy Hassall wrote:
On Sat, 11 Oct 2003 16:57:40 +0200, Daniel <da****@dlpage.com> wrote:

Chmod *should not* work, but it does somthing (I have no problems after
desactivating it), and rmdir has been a DOS command since MS-DOS v2 -
It's better known alias in the DOS world is "rd" (just as md & mkdir and
cd & chdir all work on your DOS and Windows command lines...)

There is actually a function _chmod in the Windows C runtime library, that
appears to closely matches the Unix equivalent.

http://msdn.microsoft.com/library/de...c_._wchmod.asp

Not really clear how it'd interact with NTFS permissions though.

--
Andy Hassall (an**@andyh.co.uk) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)


Jul 17 '05 #5

P: n/a
Solution :
-----------
First of all, the current mkdir command needs to have an access mode
specified... this is not the case so:

mkdir("c:/PHPquickdirtest1");
becomes
mkdir("c:/PHPquickdirtest1", 0777);

This is not really a problem, though a this must depend on your version
of PHP, as on my home programming box, the first line is OK, but a
version under Windows NT 4 running a different version, the second line
is the only one valid.

Secondly, PHP needs the leading 0 for any mode access, so

chmod("c:/PHPquickdirtest1", 777);
becomes
chmod("c:/PHPquickdirtest1", 0777);

From here, I can access directories and delete them without any
problems. rmdir and chmod problems solved.

Bug :
-----
On my NT 4 test box, after doing a chmod 777, the directory was created,
and when I wanted to delete by hand, there was a Windows error message
"This folder is a read-only folder. Are you sure"... chmod 777 sets the
read-only attribute!
Under Windows XP Home, the directory is also read-only - the bug is that
when you delete it by hand, there is no warning of this attribute! -
Just the plain old Windows "are you sure" message... If you do not think
to do a right-click > properties, you will never know what directories
are standard and what are read-only when you delete them by hand, so the
protections provided by the read-only attribute are no longer a
protection... Well done Bill!

Cheers, and thanks for all your help,

Daniel
Daniel wrote:
A quick example for anyone who wants to try...

(do not enter x. for the line numbers O:-) )

1. mkdir("c:/PHPquickdirtest1");
2. chmod("c:/PHPquickdirtest1", 777);
3. rmdir ("c:/PHPquickdirtest1");
4. mkdir("c:/PHPquickdirtest2");
5. rmdir ("c:/PHPquickdirtest2");

Line 3 gives me a permission denied error. Line 5 works perfectly.
If I comment out line 2, lines 3 (and 5 of course) works perfectly.

This is under XP Home... Anyone care to try under a different version of
'Doze ?

Cheers,
Daniel

Andy Hassall wrote:
On Sat, 11 Oct 2003 16:57:40 +0200, Daniel <da****@dlpage.com> wrote:

Chmod *should not* work, but it does somthing (I have no problems
after desactivating it), and rmdir has been a DOS command since
MS-DOS v2 - It's better known alias in the DOS world is "rd" (just as
md & mkdir and cd & chdir all work on your DOS and Windows command
lines...)


There is actually a function _chmod in the Windows C runtime library,
that
appears to closely matches the Unix equivalent.

http://msdn.microsoft.com/library/de...c_._wchmod.asp
Not really clear how it'd interact with NTFS permissions though.

--
Andy Hassall (an**@andyh.co.uk) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)



Jul 17 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.