2009-11-09 13:02:39 +0000 2009-11-09 13:02:39 +0000
319
319

chown is not changing symbolic link

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 réglé sur root:root. Que s'est-il passé ?

Réponses (8)

391
391
391
2009-11-09 13:16:42 +0000

Je mettais une barre oblique à la fin de la cible :

chown -h myuser:mygroup mysymbolic/

vient d'enlever la barre oblique à la fin et fonctionne. Voici la bonne méthode :

chown -h myuser:mygroup mysymbolic
29
29
29
2009-11-09 13:08:43 +0000

J'ai essayé moi-même et ça marche pour moi. Si vous avez le -h, cela change le propriétaire du lien symbolique, mais si vous n'en avez pas, alors cela change le propriétaire du fichier lui-même et non le lien.

Mais cela ne semble pas fonctionner du lien symbolique est lié à un répertoire

7
7
7
2013-12-30 16:43:51 +0000

J'ai été incapable de chown un répertoire même avec -h mais en utilisant le chemin complet a fonctionné.

# 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/
4
4
4
2017-12-05 11:02:14 +0000

simplement.

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

devrait suffire et fonctionner ! &nbsp ;

3
3
3
2012-04-26 09:15:50 +0000

Recréer ce lien par mon utilisateur chez lui, 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 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)

1
1
1
2014-09-16 17:46:29 +0000

J'ai eu un problème similaire. Pour moi, je ne pouvais pas chmoder le lien symbolique, même en tant que racine, quelle que soit la façon dont je l'appelais chmod. Pour ajouter à la confusion, le nautilus montrait le propriétaire/groupe comme rien. Le propriétaire était juste vide. J'ai donc essayé de changer le lien symbolique en utilisant nautilus comme racine, car chmod ne fonctionnait pas et nautilus a planté ! !

Mais je pense avoir trouvé le problème. Le répertoire vers lequel le lien symbolique pointait avait des permissions différentes de celles du lien symbolique. J'ai donc modifié le répertoire cible (en utilisant -h) pour mon nom d'utilisateur/groupe. Puis j'ai modifié le lien symbolique pour qu'il soit identique et cela a fonctionné ! Et l'affichage des détails du lien symbolique dans nautilus (avec les permissions de la racine) ne plante plus.

Donc pour les autres personnes ayant un problème similaire, vérifiez les permissions du répertoire/fichier cible et assurez-vous qu'il est compatible avec les permissions auxquelles vous attribuez le lien symbolique.

1
1
1
2016-08-11 05:24:48 +0000

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/
1
1
1
2015-11-01 19:12:57 +0000

Notez que modifier le 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 voulez l'attribuer n'a pas suffisamment de droits, le comportement du ln -s command est tel qu'il ne fera rien du tout.