La commande chgrp sous Linux modifie la propriété de groupe d’un fichier ou d’un répertoire. Pourquoi l’utiliser au lieu de chown? Parfois, un couteau suisse est génial, mais lorsque vous avez vraiment besoin d’un scalpel, seul un scalpel fera l’affaire.
Table des matières
Quand utiliser chgrp
Vous utilisez la commande chgrp pour modifier la propriété de groupe d’un fichier ou d’un répertoire. La commande chown vous permet de changer le propriétaire de l’utilisateur et le propriétaire du groupe d’un fichier ou d’un répertoire. Alors, pourquoi auriez-vous besoin ou utiliser chgrp?
Eh bien, pour une chose, c’est facile. Utiliser chown pour modifier uniquement le paramètre du propriétaire du groupe est un peu contre-intuitif. Vous devez être très prudent avec la syntaxe. Cela dépend de la mise en place correcte d’un deux-points «:». Égarez cela, et vous n’effectuez pas le changement que vous pensiez être.
La syntaxe de chgrp est tout à fait plus simple. Il possède également une fonctionnalité intéressante qui vous indique en termes simples les modifications qu’il vient d’apporter.
C’est un outil spécialement conçu et dédié à la tâche à accomplir. chgrp embrasse complètement le principe de conception Unix de faire une chose et de bien la faire. Voyons ce qu’il a à offrir.
Modification de la propriété de groupe d’un fichier
Changer la propriété de groupe d’un fichier est très simple. Vous devez utiliser sudo avec chgrp. Les groupes n’appartenant pas aux utilisateurs, le déplacement d’un fichier ou d’un répertoire d’un groupe à un autre n’est donc pas une décision qui appartient à l’utilisateur moyen. C’est un travail pour quelqu’un avec des privilèges root.
Nous allons modifier la propriété du groupe d’un fichier source C appelé «gc.c». Nous allons le changer pour le groupe «devteam».
Nous pouvons vérifier les valeurs de propriété actuelles en utilisant ls avec l’option -l (liste longue).
ls -l
Il s’agit de la commande pour changer la propriété du groupe. Tapez sudo, un espace, chgrp, un espace, le nom du groupe que nous allons définir comme propriétaire du groupe, un espace et le nom du fichier.
sudo chgrp devteam gc.c
Nous vérifierons que la modification a été effectuée en utilisant à nouveau ls -l.
ls -l
Nous pouvons voir que la propriété du groupe est passée de « dave » à « devteam ».
Pour modifier la propriété du groupe pour un ensemble de fichiers en une seule fois, vous pouvez utiliser des caractères génériques. Modifions la propriété du groupe pour tous les fichiers source C dans le répertoire actuel. Nous utiliserons cette commande:
sudo chgrp devteam *.c
Nous pouvons vérifier que le changement a été effectué comme prévu en utilisant ls -l.
ls -l
Tous les fichiers source C de ce répertoire ont été modifiés afin que leur propriété de groupe soit «devteam».
En utilisant l’option -c (changes), chgrp listera les modifications qu’il a apportées à chaque fichier. Supposons que nous ayons fait une erreur, nous voulions que les fichiers source C aient la propriété de groupe définie sur « researchlab ». Corrigeons cela maintenant. Nous utiliserons cette commande:
sudo chgrp -c researchlab *.c
Les changements sont faits pour nous, et chacun est répertorié au fur et à mesure, ce qui nous permet de vérifier que ce que nous avons changé est correct.
Modification de la propriété de groupe d’un annuaire
La modification de la propriété de groupe d’un annuaire est tout aussi simple. Nous pouvons utiliser cette commande pour modifier la propriété du groupe pour le répertoire «sauvegarde».
sudo chgrp -c devteam ./backup
Pour être clair, cette commande changera la propriété du groupe du répertoire lui-même, pas les fichiers à l’intérieur du répertoire. Nous utiliserons ls -l avec l’option -d (répertoire) pour vérifier que c’est bien le cas.
ls -l -d
La propriété du groupe de l’annuaire lui-même a été modifiée en «devteam».
L’option récursive
Si nous voulons changer la propriété du groupe pour les fichiers et répertoires stockés dans un répertoire, nous pouvons utiliser l’option -R (récursive). Cela entraînera chgrp de changer la propriété du groupe pour tous les fichiers et sous-répertoires sous le répertoire cible.
Essayons ceci avec le répertoire «backup». Voici la commande:
sudo chgrp -R devteam ./backup
Nous examinerons les fichiers dans l’un des sous-répertoires imbriqués avec la commande ls, et nous vérifierons également les paramètres de l’un des sous-répertoires imbriqués à l’aide de ls.
ls -l ./backup/images
ls -l -d ./backup/images
Nous pouvons voir que la propriété du groupe a été modifiée à la fois pour les fichiers dans les sous-répertoires imbriqués et pour les sous-répertoires imbriqués.
Utilisation d’un fichier de référence
Jusqu’à présent, nous avons explicitement indiqué à chgrp le nom du groupe que nous souhaitons utiliser. Nous pouvons également utiliser chgrp de manière à indiquer « définir la propriété de groupe de ce fichier sur la même propriété de groupe que ce fichier. »
Définissons la propriété de groupe de «gc.h» comme étant la même que «gc.c».
Nous pouvons vérifier les paramètres actuels de «gc.c» et «gc.h» en utilisant ls.
ls -l gc.c
ls -l gc.h
L’option que nous devons utiliser est l’option –reference. La propriété du groupe est copiée du fichier de référence vers l’autre fichier. Veillez à ce que les fichiers soient dans le bon sens.
sudo chgrp --reference=gc.c gc.h
Nous utiliserons ls pour vérifier que les paramètres ont été transférés vers «gc.h».
ls -l gc.h
Le fichier «gc.h» a désormais la même propriété de groupe que «gc.c».
Utilisation de chgrp avec des liens symboliques
Nous pouvons utiliser chgrp pour changer la propriété du groupe des liens symboliques, ou du fichier pointé par le lien symbolique.
Pour cet exemple, nous avons créé un lien symbolique appelé « button_link ». Cela pointe vers un fichier appelé « ./backup/images/button_about.png. » Pour modifier la propriété de groupe du fichier, nous devons utiliser l’option –dereference. Cela modifiera les paramètres du fichier et laissera le lien symbolique inchangé.
Vérifions les paramètres du lien symbolique à l’aide de ls -l.
ls -l button_link
La commande pour changer le fichier est:
sudo chgrp --dereference devteam button_link
Nous vérifierons que le lien symbolique est inchangé à l’aide de ls, et nous vérifierons également les paramètres de propriété du groupe pour le fichier.
ls -l button_link
ls -l ./backup/images/button_about.png
Le lien symbolique est inchangé et le fichier «button_about.png» a vu sa propriété de groupe modifiée.
Pour modifier la propriété du groupe du lien symbolique lui-même, nous devons utiliser l’option –no-dereference.
La commande à utiliser est:
sudo chgrp --no-dereference devteam button_link
Nous utiliserons ls -l pour vérifier que la nouvelle propriété du groupe a été définie pour le lien symbolique.
ls -l button-link
Cette fois, l’élément concerné était le lien symbolique lui-même, pas le fichier vers lequel il pointe.
Agréable et simple
Simple c’est bien. Cela signifie qu’il y a moins à retenir et moins à confondre. Cela devrait signifier moins d’erreurs.