web-dev-qa-db-fra.com

chown ne change pas de lien symbolique

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é?

302
rizidoro

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
372
rizidoro

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

29
Arto Uusikangas

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/
5
Steve Tauber

La cible est-elle un fichier ou un répertoire?

S'il s'agit d'un répertoire, essayez -H (majuscule H)

4
Michael

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)

3
wangdong

simplement.

chown -h myuser:mygroup <symlink> [without trailing slash]

devrait être suffisant et travailler!

3
Aziz Zoaib

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.

1
cgrey

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.

1
AnomalySmith

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/
1
RaamEE