I hope I'm not making a fool of myself, but here we go:
version: coreutils-5.2.1-3.rpm (from SuSE 9.2). Linux kernel 2.6.11.1. reiserfs.
Quoting from the last paragraph of the DESCRIPTION chmod man page:
However, for each symbolic link listed on the command line, chmod changes the permissions of the pointed-to file. In contrast, chmod ignores symbolic links encountered during recursive directory traversals.The 2nd sentence states that chmod ignores symbolc links during recursive directory traversals. The info page for chmod agrees:
`-P'
Do not traverse any symbolic links. This is the default if none
of `-H', `-L', or `-P' is specified. *Note Traversing symlinks::.
The actual behavior of chmod appears to be to recursively follow symbolic links. To wit:
haydn:~ # mkdir sandbox haydn:~ # cd sandbox/ haydn:~/sandbox # mkdir -p a/aa/aaa haydn:~/sandbox # touch foo haydn:~/sandbox # mkdir b haydn:~/sandbox # cd a/aa/aaa/ haydn:~/sandbox/a/aa/aaa # ln -s ../../../foo foo haydn:~/sandbox/a/aa/aaa # ln -s ../../../b b haydn:~/sandbox/a/aa/aaa # cd ../../.. haydn:~/sandbox # ls -l total 2 drwxr-xr-x 4 root root 120 Mar 9 10:03 . drwx------ 37 root root 2304 Mar 9 10:02 .. drwxr-xr-x 3 root root 72 Mar 9 10:03 a drwxr-xr-x 2 root root 48 Mar 9 10:03 b -rw-r--r-- 1 root root 0 Mar 9 10:03 foo haydn:~/sandbox # chown -R nobody:users a haydn:~/sandbox # ls -l total 2 drwxr-xr-x 4 root root 120 Mar 9 10:03 . drwx------ 37 root root 2304 Mar 9 10:02 .. drwxr-xr-x 3 nobody users 72 Mar 9 10:03 a drwxr-xr-x 2 nobody users 48 Mar 9 10:03 b -rw-r--r-- 1 nobody users 0 Mar 9 10:03 foo
Moreover, there doesn't seem to be any way of invoking chmod so that it operates recursively on a directory tree but ignores (doesn't follow) symbolic links.
_______________________________________________ Bug-coreutils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-coreutils
