Run the following script (It's been tried on linux-2.2.x and linux-2.4.x):
#!/bin/sh
cd /tmp
mkdir x
cd x
mkdir x y z
strace -etrace=rename,mkdir,rmdir,chmod mv x z
echo ---------
chmod -w y
strace -etrace=rename,mkdir,rmdir,chmod mv y z
The output:
rename("x", "z/x") = 0
---------
rename("y", "z/y") = -1 EACCES (Permission denied)
mkdir("z/y", 040755) = 0
chmod("z/y", 040555) = 0
rmdir("y") = 0
You'll notice the following:
(1) Linux can't rename directories that are marked as read-only. This is
strange because the directories actually being modified _do_ have write
permission.
(2) You can _remove_ a read-only directory.
David
I must say that I dont know what the standards say, but...
On Fri, Feb 02, 2001 at 01:28:28PM +0000, David Howells wrote:
> (1) Linux can't rename directories that are marked as read-only. This is
> strange because the directories actually being modified _do_ have write
> permission.
Kernel cant change the ".." entry?
> (2) You can _remove_ a read-only directory.
Kernel dont need to change the ".." entry?
--
marko