Comment utiliser la commande chown sous Linux



Dans les systèmes Linux, chaque fichier et chaque répertoire est associé à un propriétaire. Pour modifier ces attributions, la commande `chown` est l’outil de prédilection. Cet article explore son fonctionnement.

Attribution d’un utilisateur et d’un groupe à chaque fichier

Linux, étant un système multi-utilisateurs, permet la création de divers comptes, chacun ayant la possibilité d’accéder à l’ordinateur. De plus, plusieurs utilisateurs peuvent être actifs simultanément sur une même machine.

Afin de maintenir un suivi précis des fichiers appartenant à chaque utilisateur et de renforcer la sécurité, Linux adopte le concept de propriété. Chaque fichier est donc lié à un propriétaire spécifique (un utilisateur) ainsi qu’à un groupe.

Lorsqu’un fichier est créé, son propriétaire est automatiquement l’utilisateur qui l’a généré. Le groupe attribué au fichier, dit « groupe propriétaire », est celui auquel l’utilisateur appartient à ce moment précis. Les utilisateurs et les groupes sont identifiés par des noms, mais aussi par des identifiants numériques uniques, appelés UID (User ID) pour les utilisateurs et GID (Group ID) pour les groupes.

Ainsi, un fichier que vous créez vous appartient et est lié à votre groupe actuel, souvent celui auquel vous vous êtes connecté. Par défaut, il s’agit généralement d’un groupe qui porte le même nom que votre identifiant et qui a été créé lors de la configuration de votre compte sur le système.

La commande `chown` permet de modifier ces attributions. Vous pouvez ainsi définir un nouveau propriétaire, un nouveau groupe, ou les deux simultanément. Bien que le propriétaire d’un fichier puisse changer son groupe, seul l’utilisateur root possède l’autorité nécessaire pour modifier le propriétaire lui-même. Cela empêche un utilisateur de s’approprier un fichier appartenant à un autre sans le consentement de ce dernier.

Cas d’utilisation de la modification de propriétaire

Voici quelques scénarios dans lesquels la modification de propriétaire est nécessaire :

Lors du transfert de fichiers entre différents systèmes Linux ou Unix, il est souvent nécessaire de réattribuer les propriétaires et les groupes aux nouveaux utilisateurs et groupes du système cible.
Lorsqu’un employé quitte une organisation, il est impératif de transférer la propriété de ses fichiers à un autre membre du personnel.
La création de scripts utilisables par un utilisateur spécifique nécessite parfois d’adapter la propriété des fichiers.
Si vous créez un fichier ou un répertoire en tant qu’utilisateur root, vous pouvez ensuite le rendre accessible à un utilisateur particulier.

Affichage de vos groupes, UID et GID

Pour lister les groupes auxquels vous appartenez, utilisez la commande `groups`.

groups

Pour obtenir une liste des groupes, leurs identifiants numériques, ainsi que votre UID et GID, la commande `id` est appropriée :

id

La commande `id` peut être affinée avec diverses options :

  • `-u`: Affiche votre UID.
  • `-g`: Affiche votre GID effectif.
  • `-nu`: Affiche votre nom d’utilisateur.
  • `-ng`: Affiche le nom de votre groupe actuel.
id -u
id -g
id -nu
id -ng

Visualiser les attributions d’utilisateurs et de groupes

Pour identifier les propriétaires d’un fichier ou d’un répertoire, vous pouvez utiliser l’option `-l` (liste longue) avec la commande `ls`.

ls -l

Dans cet exemple, le nom « dave » apparait deux fois. La première occurrence indique l’utilisateur propriétaire du fichier, tandis que la seconde désigne le groupe auquel le fichier est associé.

Par défaut, lorsqu’un nouvel utilisateur Linux est créé, il est ajouté à un groupe privé qui porte le même nom. Il est alors le seul membre de ce groupe.

Dans l’exemple ci-dessous, le fichier exécutable est la propriété de l’utilisateur « mary », qui est également le groupe auquel le fichier appartient.

ls -l

Ici, le fichier appartient à l’utilisateur « oscar », mais le groupe attribué est « researchlab ». Cela implique que les membres de ce groupe pourront accéder au fichier selon les autorisations qui leur sont définies.

Modifier le propriétaire d’un fichier

Voyons quelques exemples concrets. La commande suivante modifie le propriétaire du fichier `while.c` pour l’utilisateur « mary » :

sudo chown mary while.c

L’exécution de `ls` permet de vérifier les modifications apportées :

ls -l while.c

`chown` peut être utilisé pour modifier la propriété de plusieurs fichiers en même temps :

sudo chown mary getval.c global.c goto.c

Les trois fichiers ont désormais « mary » comme propriétaire.

ls -l getval.c global.c goto.c

L’utilisation de caractères génériques permet de sélectionner des groupes de fichiers. Cette commande modifiera le propriétaire de tous les fichiers commençant par la lettre « c » :

sudo chown mary c*.*

Tous ces fichiers ont maintenant « mary » comme propriétaire, mais le groupe reste inchangé.

ls -l mary c*.*

La modification du propriétaire d’un répertoire s’effectue de la même manière. Il suffit d’indiquer le nom du répertoire à la place du nom du fichier :

sudo chown mary ./archive/

Pour vérifier la propriété d’un répertoire, utilisez l’option `-d` (directory) de la commande `ls`. Cela permet d’afficher les propriétés du répertoire lui-même et non celles des fichiers qu’il contient :

ls -l -d ./archive/

Pour modifier la propriété de tous les fichiers d’un répertoire, utilisez l’option `-R` (récursive). Cette option permet de modifier la propriété de tous les fichiers présents dans le dossier d’archive, ainsi que dans ses sous-dossiers :

sudo chown -R mary ./archive/

Vérifions maintenant les fichiers du répertoire « archive » :

ls -l ./archive/

Comme attendu, tous les fichiers ont maintenant « mary » comme propriétaire.

Changer le groupe d’un fichier

Il existe plusieurs méthodes pour modifier le groupe associé à un fichier.

Pour modifier à la fois le propriétaire et le groupe, il faut indiquer le nouveau propriétaire et le nouveau groupe, séparés par deux points «:». Le groupe doit exister au préalable :

sudo chown mary:researchlab charm.c

Tant le propriétaire que le groupe du fichier ont été modifiés :

ls -l charm.c

Une méthode abrégée pour attribuer le fichier au groupe actuel du nouveau propriétaire consiste à indiquer uniquement les deux points après le nom du propriétaire :

sudo chown mary: caps.c

ls -l caps.c

Le fichier est maintenant la propriété de « mary », tant au niveau de l’utilisateur que du groupe.

Pour modifier uniquement le groupe, indiquez les deux points en premier et omettez le nom de l’utilisateur. Le propriétaire ne sera pas modifié :

sudo chown :researchlab at.c

ls -l at.c

Seul le groupe a été modifié, tandis que le propriétaire est resté inchangé.

Utiliser les UID et GID avec `chown`

Il est également possible d’utiliser les identifiants numériques UID et GID avec la commande `chown`. La commande ci-dessous attribue le fichier « at.c » à l’utilisateur et au groupe correspondant à l’identifiant 1001:

sudo chown 1001:1001 at.c

ls -l at.c

La propriété, un aspect clé de la sécurité

Comme le dit l’adage, « la possession vaut les neuf dixièmes de la loi ». Dans le contexte de Linux, la propriété joue un rôle crucial dans la sécurité des fichiers, en complément des permissions. L’utilisation judicieuse des commandes `chown` et `chmod` est essentielle pour garantir un accès sécurisé aux fichiers de votre système.