366 votes

chown ne modifie pas le lien symbolique

J'essaie de changer l'utilisateur/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. Que s'est-il passé ?

0 votes

Selon la page de manuel, l'option -h n'a d'effet que sur les systèmes qui peuvent changer la propriété du lien symbolique.

0 votes

Êtes-vous sur un montage NFS ?

0 votes

Tout ce qui se termine par / est un répertoire. Vous voulez dire mysymbolic qui est le lien symbolique, et non mysymbolic/ qui est probablement le répertoire vers lequel il pointe.

3voto

Hooopo Points 891

Recréez ce lien par myuser à la maison de myuser, et mv ce lien à l'emplacement cible par sudo.

Par exemple : (en tant que myuser), ln -s somedir/ linkname (sera un lien brisé si somedir/ n'existe pas dans le répertoire de l'utilisateur)

Ensuite, sudo mv linkname targetlocation (deviendra un lien valide à condition que targetlocation/somedir/ existe)

0 votes

Votre réponse est sans détail et difficile à comprendre. Veuillez envisager de réviser votre réponse pour fournir plus de détails.

1voto

cgrey Points 11

J'ai eu un problème similaire. Je n'ai pas pu modifier le lien symbolique, même en tant que root, quelle que soit la façon dont j'ai appelé chmod. Pour ajouter de la confusion à cela, nautilus affichait le propriétaire/groupe comme rien. Le propriétaire était simplement vide. J'ai donc essayé de modifier le lien symbolique en utilisant nautilus en tant que root puisque chmod ne fonctionnait pas et nautilus s'est planté !

Mais je pense avoir trouvé le problème. Le répertoire vers lequel pointait le lien symbolique avait des permissions différentes de celles du lien symbolique. J'ai donc mis le répertoire cible en chmod (en utilisant -h) à mon nom d'utilisateur/groupe. Puis j'ai mis le lien symbolique sous le même nom et ça a marché ! Et l'affichage des détails du lien symbolique dans nautilus (avec les droits root) ne plante plus.

Pour les autres personnes rencontrant un problème similaire, vérifiez les autorisations du répertoire/fichier cible et assurez-vous qu'elles sont compatibles avec les autorisations que vous définissez pour le lien symbolique.

1voto

AnomalySmith Points 11

Notez que la modification du owner d'un lien symbolique ne peut fonctionner que si la cible est accessible par le nouvel utilisateur auquel vous voulez l'attribuer.

Par exemple, si votre cible se trouve à l'intérieur d'un dossier pour lequel l'utilisateur auquel vous souhaitez l'attribuer ne dispose pas de droits suffisants, la fonction ln -s command est tel qu'il ne fera rien du tout.

1voto

RaamEE Points 452

Pour Solaris (vérifié sur S11.3) pour un lien symbolique vers un répertoire vous devrez 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/

1voto

Newbie01 Points 11

C'était pareil pour moi jusqu'à ce que je me présente :

chown -R user:group file.so >>

Ça a marché, bien que je ne sois pas sûr que -R est pour les répertoires.

0 votes

Si vous chown un lien symbolique comme ça, cela affecte les fichiers référencés. Si vous voulez changer le lien symbolique lui-même, vous devez utiliser le commutateur -h ou -no-dereference

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X