Em um sistema Linux, ao alterar a propriedade de um link simbólico usando chown
, por padrão, ele altera o destino do link simbólico (isto é, qualquer que seja o link simbólico apontando para ).
Se você quiser alterar a propriedade do próprio link, precisará usar a opção -h
para chown
:
-h, --no-dereference affect each symbolic link instead of any referenced file (useful only on systems that can change the ownership of a symlink)
Por exemplo:
$ touch test
$ ls -l test*
-rw-r--r-- 1 mj mj 0 Jul 27 08:47 test
$ sudo ln -s test test1
$ ls -l test*
-rw-r--r-- 1 mj mj 0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test
$ sudo chown root:root test1
$ ls -l test*
-rw-r--r-- 1 root root 0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test
Observe que o destino do link agora pertence ao root.
$ sudo chown mj:mj test1
$ ls -l test*
-rw-r--r-- 1 mj mj 0 Jul 27 08:47 test
lrwxrwxrwx 1 root root 4 Jul 27 08:47 test1 -> test
E, novamente, o link test1
ainda é de propriedade de root, mesmo que test
tenha mudado.
$ sudo chown -h mj:mj test1
$ ls -l test*
-rw-r--r-- 1 mj mj 0 Jul 27 08:47 test
lrwxrwxrwx 1 mj mj 4 Jul 27 08:47 test1 -> test
Finalmente, alteramos a propriedade do link usando a opção -h
.