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.

441voto

rizidoro Points 4409

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

chown -h myuser:mygroup mysymbolic/ 

J'ai juste enlevé la barre oblique à la fin et ça marche. Voici la bonne méthode :

 chown -h myuser:mygroup mysymbolic

11 votes

Ne fonctionne pas pour moi sur ubuntu

2 votes

Wow, ça m'a pris des heures à trouver.

60 votes

@Radek Cela a fonctionné pour moi sur Ubuntu tant que je me souvenais de l'adresse de l'utilisateur. -h drapeau.

31voto

Je l'ai essayé moi-même et ça marche pour moi. Si vous avez le -h, il change le propriétaire du lien symbolique, mais si vous ne l'avez pas, il change le propriétaire du fichier lui-même et non du lien.

Mais cela ne semble pas fonctionner si le lien symbolique est lié à un répertoire.

2 votes

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

8voto

Steve Tauber Points 1661

J'ai été incapable de chown un répertoire même avec -h mais l'utilisation du 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/

5voto

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

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

0 votes

La cible est un répertoire

0 votes

Voir ma réponse éditée sur le répertoire

7 votes

Désolé pour la nécromancie, mais je voudrais signaler que la syntaxe correcte est avec le "h" minuscule.

4voto

Aziz Zoaib Points 141

Simplement.

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

devrait être suffisante et fonctionner !

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