2001-02-02 13:29:10

by David Howells

[permalink] [raw]
Subject: [BUG] directory renaming/removal


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


2001-02-02 13:38:27

by Marko Kreen

[permalink] [raw]
Subject: Re: [BUG] directory renaming/removal


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