J'essaie de changer l'utilisateur/le groupe d'un lien symbolique avec la commande:
$ chown -h myuser:mygroup mysymbolic/
Mais ça ne change pas. Je suis connecté en tant que root. L'utilisateur/groupe actuel est défini sur root: root. Qu'est ce qui ne s'est pas bien passé?
Je mettais une barre oblique à la fin de la cible:
chown -h myuser:mygroup mysymbolic/
vient de supprimer la barre oblique à la fin et fonctionne. Voici la bonne façon:
chown -h myuser:mygroup mysymbolic
J'ai essayé cela moi-même et cela fonctionne pour moi. Si vous avez le -h, cela change le propriétaire du lien symbolique, mais sinon, le propriétaire du fichier lui-même et non le lien.
Mais cela ne semble pas fonctionner si le lien symbolique est lié à un répertoire
Je ne pouvais pas chown
un répertoire même avec -h
mais utiliser le chemin complet fonctionnait.
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root root 32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root root 32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root root 32 Dec 30 09:02 apps -> /u/apps/
# pwd
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy 32 Dec 30 09:02 apps -> /u/apps/
La cible est-elle un fichier ou un répertoire?
S'il s'agit d'un répertoire, essayez -H (majuscule H)
Recréez ce lien par myuser chez myuser, et mv ce lien vers l'emplacement cible par Sudo.
Par exemple: (en tant que myuser), ln -s somedir/ linkname
(sera un lien brisé si quelque-rép/n'existe pas dans le répertoire de l'utilisateur)
Ensuite, Sudo mv linkname targetlocation
(deviendra un lien valide si targetlocation/somedir/
existe)
simplement.
chown -h myuser:mygroup <symlink> [without trailing slash]
devrait être suffisant et travailler!
J'avais un problème similaire. Pour moi, je ne pouvais pas chmoder le lien symbolique même en tant que root, peu importe comment j'ai appelé chmod. Pour ajouter à la confusion, nautilus ne montrait rien au propriétaire/groupe. Le propriétaire était juste vide. J'ai donc essayé de changer le lien symbolique en utilisant Nautilus en tant que racine car chmod ne fonctionnait pas et Nautilus s'est écrasé !!
Mais je pense avoir résolu le problème. Le répertoire pointé par le lien symbolique avait des autorisations différentes de celles du lien symbolique. J'ai donc modifié le répertoire cible (en utilisant -h) avec le nom de mon utilisateur/groupe. Ensuite, cliquez sur le lien symbolique et vérifiez le résultat! Et l'affichage des détails du lien symbolique dans Nautilus (avec les autorisations root) ne se bloque plus.
Donc, pour les autres personnes ayant un problème similaire, vérifiez les autorisations du répertoire/fichier cible et assurez-vous qu'il est compatible avec les autorisations pour lesquelles vous définissez le lien symbolique.
Notez que la modification de la variable owner
d'un lien symbolique ne peut fonctionner que si la cible est accessible par le nouvel utilisateur auquel vous souhaitez l'attribuer.
Par exemple, si votre cible se trouve dans un dossier auquel l'utilisateur auquel vous souhaitez attribuer ne dispose pas de droits suffisants, le comportement ln -s command
est tel qu'il ne fera rien du tout.
Pour Solaris (vérifié sur S11.3) pour un lien symbolique vers un répertoire, vous devez exécuter
root@ac11x017:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx 1 root root 16 Jun 15 09:08 dumpdir -> /data/dumpdir/
root@ac11x017:/var/tmp$ chown -RP Oracle:oinstall dumpdir
lrwxrwxrwx 1 Oracle oinstall 16 Jun 15 09:09 dumpdir -> /data/dumpdir/