Dipende da come chiami chmod
e dalla piattaforma su cui stai girando.
Ad esempio, su un sistema Linux, man chmod
dice questo:
chmod
non modifica mai le autorizzazioni dei collegamenti simbolici; la chmod
chiamata di sistema non può cambiare le loro autorizzazioni. Questo non è un problema poiché le autorizzazioni dei collegamenti simbolici non vengono mai utilizzate. Tuttavia, per ciascun collegamento simbolico elencato nella riga di comando, chmod
modifica le autorizzazioni del file puntato. Al contrario, chmod
ignora i collegamenti simbolici rilevati durante gli attraversamenti ricorsivi delle directory.
Tuttavia, su un Mac, chmod può essere utilizzato per modificare le autorizzazioni di un collegamento simbolico utilizzando opzioni come questa (da man chmod
):
-h Se il file è un collegamento simbolico, modificare la modalità del collegamento stesso anziché il file a cui punta il collegamento.
Per esempio, supponiamo che tu sia su una macchina Linux per il resto di questa risposta.
Se nel primo caso si esegue chmod -R 777 directory
per modificare in modo ricorsivo le autorizzazioni, la destinazione del collegamento non sarà interessata, ma in tal caso chmod 777 directory/*
lo sarà.
Se si modificano direttamente le autorizzazioni sulla destinazione del collegamento, tali autorizzazioni verranno applicate (poiché, come dicono la pagina man e il baraboom , le autorizzazioni del collegamento effettive non vengono utilizzate per nulla).
Registro di prova per illustrazione:
$ 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