Fatmawati Achmad Zaenuri / Shutterstock.com
le 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.
Quand devriez-vous utiliser chgrp
Vous utilisez le chgrp
commande pour modifier la propriété de groupe d’un fichier ou d’un répertoire. le chown
La commande vous permet de changer l’utilisateur propriétaire du groupe propriétaire d’un fichier ou d’un répertoire. Alors pourquoi auriez-vous besoin ou utiliser chgrp
?
Eh bien, pour une chose, c’est facile. En utilisant chown
changer 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 du placement correct d’un deux-points «:». Égarez cela, et vous ne faites 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. Tu dois 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 le -l
(longue liste) option.
ls -l
Il s’agit de la commande pour modifier la propriété du groupe. Type 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 ls -l
encore.
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 même temps, 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 le -c
(changements) option chgrp
listera les modifications 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 répertoire 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 le -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 le -R
(récursive) option. Cela causera chgrp
pour modifier 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 le dans l’un des sous-répertoires imbriqués avec le ls
et nous vérifierons également les paramètres de l’un des imbriqués en utilisant 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 dit explicitement chgrp
le nom du groupe que nous souhaitons utiliser. Nous pouvons également utiliser chgrp
de la manière qui dit « définir la propriété de groupe du fichier sur la même propriété de groupe que le fichier. »
Définissons la propriété de groupe de «gc.h» sur la même chose 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 la --reference
option. La propriété du groupe est copiée du fichier de référence dans 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
On peut 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 le --dereference
option. Cela modifiera les paramètres du fichier et laissera le lien symbolique inchangé.
Vérifions les paramètres du lien symbolique en utilisant 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 changer la propriété du groupe du lien symbolique lui-même, nous devons utiliser le --no-dereference
option.
La commande à utiliser est:
sudo chgrp --no-dereference devteam button_link
Nous utiliserons ls -l
pour vérifier que la nouvelle propriété de 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.
Sympa et simple
Simple c’est bien. Cela signifie qu’il y a moins à retenir et moins à confondre. Cela devrait signifier moins d’erreurs.