GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer la propriété des liens symboliques ?

Sur un système Linux, lors du changement de propriétaire d'un lien symbolique à l'aide de chown , par défaut cela change la cible du lien symbolique (c'est-à-dire tout ce vers quoi le lien symbolique pointe ).

Si vous souhaitez modifier le propriétaire du lien lui-même, vous devez utiliser le -h option à chown :

-h, --no-dereference affecter chaque lien symbolique au lieu de n'importe quel fichier référencé (utile uniquement sur les systèmes qui peuvent changer la propriété d'un lien symbolique)

Par exemple :

$ 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

Notez que la cible du lien appartient maintenant à 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

Et encore, le lien test1 appartient toujours à root, même si test a changé.

$ 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

Et enfin on change le propriétaire du lien en utilisant le -h option.


Lorsque vous agissez sur des liens symboliques, vous devez indiquer à la plupart des outils (chown, chmod, ls...) de ne pas déréférencer le lien :vous devez ajouter le -h paramètre, comme indiqué dans la page de manuel :

-h, --no-dereference
          affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink)

Alors essayez :sudo chown -h askar.admin /etc/init.d/jboss1


Notez également que l'erreur que vous avez donnée ci-dessus

ln: creating symbolic link `/etc/init.d/jboss1': Permission denied

n'est pas dû au fait que le propriétaire du lien symbolique est quelqu'un d'autre que le propriétaire du fichier d'origine. Cela est (très probablement) dû au fait que l'utilisateur askar n'a pas accès en écriture au répertoire /etc/init.d .


Linux
  1. Comment créer des liens matériels et symboliques sous Linux

  2. Comment tester la connectivité du port [TCP/UDP] à partir d'un serveur Linux

  3. Comment puis-je exécuter une fonction à partir d'un script en ligne de commande ?

  4. Comment changer le curseur du terminal de case en ligne ?

  5. Comment créer des liens symboliques vers tous les fichiers (classe de fichiers) d'un répertoire ?

Comment supprimer des liens symboliques sous Linux

Comment créer des liens symboliques sous Linux

Comment changer la version PHP de cPanel ?

Qu'est-ce que les liens symboliques sous Linux ? Comment créer des liens symboliques ?

Comment changer l'URL du site Magento depuis phpMyAdmin ?

Comment obtenir une liste de liens symboliques sous Linux