Question chown ne change pas de 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. Qu'est ce qui ne s'est pas bien passé?


273
2017-11-09 13:02


origine


Quel système d'exploitation utilisez-vous? En fonction de la page manaul, l'option -h ne prend effet que sur les systèmes pouvant modifier la propriété du lien symbolique. - Jichao
Êtes-vous sur un montage NFS? - Ortomala Lokni
Tout ce qui finit par / est un directeur. Vous voulez dire mysymbolic, qui est le lien symbolique, pas mysymbolic/ qui est probablement le répertoire vers lequel il pointe. - David Schwartz


Réponses:


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

chown -h myuser:mygroup mysymbolic/ 

juste enlevé la barre oblique à la fin et travaille. Voici la bonne manière:

 chown -h myuser:mygroup mysymbolic

341
2017-11-09 13:16



ne fonctionne pas pour moi sur Ubuntu - Radek
Wow, cela m'a pris des heures à trouver. - defines
@Radek Cela a fonctionné pour moi sur Ubuntu tant que je me souvenais de la -hdrapeau. - IQAndreas
Fonctionne pour moi sur Ubuntu avec  -h et sans pour autant la barre oblique - friederbluemle
Je ne peux pas croire après 4 ans, je suis tombé sur mon auto passé souffrant du même problème, la missin '-h'! - Antony D'Andrea


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 ne le faites pas, cela change 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


26
2017-11-09 13:08



Pour ce que cela vaut, la page de manuel d’OS X est beaucoup plus claire sur l’option -h que sur Linux (Arch). "-H Si le fichier est un lien symbolique, modifiez l'ID utilisateur et / ou l'ID du groupe lui-même." Vs. "-h, --no-dereference affecte les liens symboliques au lieu de tout fichier référencé (utile uniquement sur systèmes qui peuvent changer la propriété d'un lien symbolique) " - Matijs


J'étais incapable de chown un répertoire même avec -h mais en utilisant le chemin complet travaillé.

# 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
2017-12-30 16:43





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

Si c'est un répertoire alors essayez -H (majuscule H)


4
2017-11-09 13:08



la cible est un répertoire
voir ma réponse modifiée à propos du répertoire
Désolé pour la nécromancie des threads, mais je voudrais souligner que la syntaxe correcte est la minuscule «h».


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

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

Alors, sudo mv linkname targetlocation (deviendra un lien valide fourni targetlocation/somedir/ existe)


3
2018-04-26 09:15



Votre réponse est sans détail et difficile à comprendre. S'il vous plaît envisager de réviser votre réponse pour fournir plus de détails. - KronoS


simplement.

chown -h myuser:mygroup <symlink>

devrait suffire et travailler!


2
2017-12-05 11:02





J'avais un problème similaire. Pour moi, je ne pouvais pas modifier le lien symbolique même en tant que root, peu importe comment j'ai appelé chmod. Pour ajouter à la confusion, 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 fonctionnant en tant que root car chmod ne fonctionnait pas et nautilus plantait !!

Mais je pense que j'ai compris le problème. Le répertoire sur lequel le lien symbolique indiquait des autorisations différentes de celles du lien symbolique. Donc, j'ai chmodé le répertoire cible (en utilisant -h) à mon nom d'utilisateur / groupe. Ensuite, le lien symbolique vers le même et a fonctionné! Et l'affichage des détails du lien symbolique dans Nautilus (avec les autorisations root) ne se bloque plus.

Donc, pour les autres utilisateurs ayant un problème similaire, vérifiez les autorisations du répertoire / fichier cible et assurez-vous qu'il est compatible avec les autorisations que vous définissez pour le lien symbolique.


1
2017-09-16 17:46





Notez que changer le owner d'un lien symbolique ne peut fonctionner que si la cible est accessible par le nouvel utilisateur auquel vous souhaitez l’affecter.

Par exemple, si votre cible se trouve dans un dossier auquel l'utilisateur auquel vous souhaitez l'attribuer n'a pas suffisamment de droits, ln -s command le comportement est tel qu'il ne fera rien du tout.


1
2017-11-01 19:12





Pour Solaris (vérifié sur S11.3) pour un lien symbolique vers un répertoire que 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
2017-08-11 05:24