Subject: regression: cp -al doesn't copy symlinks, but tries to link to them (fail)

From: Linda Walsh <[email-masked]>
Date: Wed, 26 Mar 2014 11:08:21 -0700

have a simple test case:
as root (w /umask 002):

mkdir -p dir/{a,b}
touch dir/b/file
ln -s ../b/file dir/a/symfile
---

So now tree should look like:

>  tree -AFugp dir

dir
+-- [drwxrwxr-x root     root    ]  a/
|   +-- [lrwxrwxrwx root     root    ]  symfile -> ../b/file
+-- [drwxrwxr-x root     root    ]  b/
     +-- [-rw-rw-r-- root     root    ]  file
----

Now, w/normal user, who is in group root, try:

cp -al dir dir2
cp: cannot create hard link ‘dir2/dir/a/symfile’ to ‘dir/a/symfile’: Operation 
not permitted
-----

Trying to link to a symlink is the bug --
it used to duplicate the symlink.

This is a recent behavior
change -- i.e. looking at earlier behavior, the symlinks,
like the directories are created as the 'user', and
only files are linked to.

Core utils version: 8.21 (suse rpm coreutils-8.21-7.7.7.x86_64)

Any idea how this managed to be broken?