Contactez-nous

Changer le propriétaire et le groupe avec `chown` et `chgrp` (introduction)

Introduction aux commandes `chown` (changer propriétaire) et `chgrp` (changer groupe) sous Linux pour gérer la propriété des fichiers et répertoires.

Au-delà des permissions : gérer la propriété des fichiers

Si les permissions (r, w, x) déterminent *ce que* l'on peut faire avec un fichier ou un répertoire, la notion de propriété détermine *qui* est le propriétaire et à quel groupe le fichier est associé. Par défaut, lorsque vous créez un fichier, vous en êtes le propriétaire, et il est généralement associé à votre groupe principal. Cependant, il est parfois nécessaire de changer cette propriété, par exemple, pour transférer la responsabilité d'un fichier à un autre utilisateur, ou pour l'associer à un groupe de projet spécifique.

Linux fournit deux commandes principales pour cela : chown (change owner) pour changer le propriétaire et potentiellement le groupe, et chgrp (change group) pour changer uniquement le groupe. La maîtrise de ces commandes est particulièrement importante pour les administrateurs système, mais peut aussi être utile pour les utilisateurs dans des environnements collaboratifs.

Ce sous-chapitre introduit ces deux commandes, leur syntaxe de base et leurs cas d'utilisation les plus courants. Notez que pour changer le propriétaire d'un fichier, vous devez généralement être l'utilisateur root (superutilisateur). Un utilisateur normal ne peut généralement pas donner ses fichiers à quelqu'un d'autre (il peut changer le groupe d'un fichier qu'il possède à un groupe dont il est membre).

Changer le propriétaire (et le groupe) : la commande `chown`

La commande chown est utilisée pour changer le propriétaire d'un fichier ou d'un répertoire. Elle peut également changer le groupe en même temps.

Syntaxe de base :
chown [options] NOUVEAU_PROPRIETAIRE FICHIER_OU_REPERTOIRE

Pour changer uniquement le propriétaire du fichier rapport.txt à l'utilisateur marie :

sudo chown marie rapport.txt

(L'utilisation de sudo est ici pour indiquer que cette action requiert généralement des privilèges d'administrateur, car vous changez la propriété d'un fichier qui ne vous appartient peut-être plus après l'opération, ou pour donner un fichier à un autre utilisateur.)

Changer le propriétaire et le groupe simultanément :

Vous pouvez spécifier le nouveau propriétaire et le nouveau groupe en les séparant par un deux-points (:).

chown [options] NOUVEAU_PROPRIETAIRE:NOUVEAU_GROUPE FICHIER_OU_REPERTOIRE

Exemple : Changer le propriétaire à jean et le groupe à devs pour le répertoire ProjetAlpha/ et tout son contenu (avec l'option récursive -R) :

sudo chown -R jean:devs ProjetAlpha/
Changer uniquement le groupe avec chown :

Si vous voulez seulement changer le groupe en utilisant chown, vous pouvez omettre le nom du propriétaire avant les deux-points :

sudo chown :nouveau_groupe mon_fichier.conf

Ceci change le groupe de mon_fichier.conf à nouveau_groupe sans modifier le propriétaire actuel.

Utilisation des UID et GID numériques :chown accepte également les identifiants numériques d'utilisateur (UID) et de groupe (GID) à la place des noms. Par exemple, si l'UID de jean est 1001 et le GID de devs est 1005 :
sudo chown -R 1001:1005 ProjetAlpha/

Options courantes de chown :

  • -R (ou --recursive) : Applique les changements de manière récursive à tous les fichiers et sous-répertoires. Essentiel pour les répertoires.
  • -v (ou --verbose) : Affiche des informations sur les changements effectués pour chaque fichier.
  • -c (ou --changes) : Similaire à -v, mais ne signale que les fichiers dont la propriété a effectivement changé.
  • --from=PROPRIO_ACTUEL:GROUPE_ACTUEL : Ne change la propriété que si le fichier appartient actuellement à PROPRIO_ACTUEL et/ou GROUPE_ACTUEL.

Changer uniquement le groupe : la commande `chgrp`

Si votre intention est uniquement de changer le groupe propriétaire d'un fichier ou d'un répertoire, sans toucher à l'utilisateur propriétaire, la commande chgrp (change group) est plus spécifique.

Syntaxe de base :
chgrp [options] NOUVEAU_GROUPE FICHIER_OU_REPERTOIRE

Par exemple, pour changer le groupe du fichier datasheet.pdf au groupe marketing :

chgrp marketing datasheet.pdf

En tant qu'utilisateur normal, vous pouvez généralement utiliser chgrp sur les fichiers que vous possédez pour les assigner à un groupe dont vous êtes membre. Pour assigner un fichier à un groupe dont vous n'êtes pas membre, ou pour changer le groupe d'un fichier qui ne vous appartient pas, les privilèges root (via sudo) sont généralement nécessaires.

Comme chown, chgrp accepte également les GID numériques.

Options courantes de chgrp (similaires à chown) :

  • -R (ou --recursive) : Changements récursifs.
  • -v (ou --verbose) : Mode verbeux.
  • -c (ou --changes) : Rapporte seulement les changements.
  • --reference=FICHIER_REF : Utilise le groupe de FICHIER_REF comme nouveau groupe.
Pourquoi utiliser chgrp si chown :nouveau_groupe ... fait la même chose ?chgrp est plus explicite sur l'intention (changer uniquement le groupe). De plus, sur certains systèmes très anciens ou très stricts, les permissions pour utiliser chown (même pour changer seulement le groupe) pourraient être plus restreintes que celles pour chgrp. Pour un usage moderne, les deux sont souvent interchangeables pour changer uniquement le groupe, mais chgrp est sémantiquement plus clair pour cette tâche.Quand utiliser chown et chgrp ?
  • Lorsqu'un utilisateur quitte une équipe et que ses fichiers de projet doivent être repris par un autre utilisateur.
  • Pour s'assurer que les fichiers d'une application web appartiennent à l'utilisateur sous lequel le serveur web s'exécute (par exemple, www-data).
  • Pour organiser des répertoires partagés où plusieurs utilisateurs d'un même groupe ont besoin d'accéder et de modifier des fichiers.
  • Après avoir décompressé une archive ou copié des fichiers d'une source externe, pour s'assurer qu'ils ont la propriété appropriée sur le système local.

La bonne gestion de la propriété des fichiers, en conjonction avec des permissions bien définies, est un aspect clé de la sécurité et de l'administration d'un système Linux. Bien que cette introduction ne couvre que les bases, elle vous donne les outils pour commencer à gérer cet aspect crucial.