Johan Oudinet wrote:
> GNU coreutils 8.5
> Ubuntu 10.10 32bits Ext4
>
> $ sudo touch f; ln f g
> ln: creating hard link `g' => `f': Operation not permitted
Thank you for the bug report. However I am unable to recreate this
problem using 8.5 on my Debian system using ext3.
$ sudo touch f
$ ln f g
$ ls -ldog f g
-rw-r--r-- 2 0 Jun 9 14:55 f
-rw-r--r-- 2 0 Jun 9 14:55 g
Perhaps this is a problem with ext4? Can you run your test using
strace so that we can see what the system is saying? Something like
this following command.
$ strace -e trace=file -o /tmp/ln.strace.out ln f g
On my system I see this output:
...
stat("g", 0x7fffa6430f10) = -1 ENOENT (No such file or
directory)
lstat("f", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
linkat(AT_FDCWD, "f", AT_FDCWD, "g", 0) = 0
> However, the following commands work:
> $ sudo touch f2; sudo chmod a+w f2; ln f2 g
>
> The first call to ln should be permitted too.
As far as I can tell it is permitted. If it isn't then it would be a
kernel limitation.
Bob