It depends on how you call chmod
and the platform you are running on.
For example, on a Linux system, man chmod
says this:
chmod
never changes the permissions of symbolic links; the chmod
system call cannot change their permissions. This is not a problem
since the permissions of symbolic links are never used. 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.
However, on a Mac, chmod can be used to modify the permissions of a symbolic link using options such as this (from man chmod
):
-h If the file is a symbolic link, change the mode of the link
itself rather than the file that the link points to.
For the sake of example, lets assume you are on a Linux machine for the rest of this answer.
If in the first case you run chmod -R 777 directory
to recursively change the permissions, the link target will not be affected, but if you do chmod 777 directory/*
, it will.
If you change the permissions on the link target directly, those permissions will carry through (since as man page and baraboom say, the actual link permissions aren't used for anything).
Test log for illustration:
$ mkdir dir && touch dir/file{1,2} /tmp/file3 && ln -s {/tmp,dir}/file3
$ ls -l dir/* /tmp/file3
-rw-r--r-- 1 user group 0 2011-06-27 22:02 /tmp/file3
-rw-r--r-- 1 user group 0 2011-06-27 22:02 dir/file1
-rw-r--r-- 1 user group 0 2011-06-27 22:02 dir/file2
lrwxrwxrwx 1 user group 10 2011-06-27 22:02 dir/file3 -> /tmp/file3
$ chmod -R 777 dir && ls -l dir/* /tmp/file3
-rw-r--r-- 1 user group 0 2011-06-27 22:02 /tmp/file3
-rwxrwxrwx 1 user group 0 2011-06-27 22:02 dir/file1
-rwxrwxrwx 1 user group 0 2011-06-27 22:02 dir/file2
lrwxrwxrwx 1 user group 10 2011-06-27 22:02 dir/file3 -> /tmp/file3
$ chmod 700 dir/* && ls -l dir/* /tmp/file3
-rwx------ 1 user group 0 2011-06-27 22:02 /tmp/file3
-rwx------ 1 user group 0 2011-06-27 22:02 dir/file1
-rwx------ 1 user group 0 2011-06-27 22:02 dir/file2
lrwxrwxrwx 1 user group 10 2011-06-27 22:02 dir/file3 -> /tmp/file3