Comment utiliser la commande chown sous Linux

Les fichiers et répertoires des systèmes Linux appartiennent tous à quelqu’un. Vous pouvez changer leur propriété avec la commande chown. Nous vous montrons comment.

Chaque fichier appartient à un utilisateur et à un groupe

Linux est un système multi-utilisateurs. Le système d’exploitation permet de définir plusieurs comptes d’utilisateurs et pour tout utilisateur valide de se connecter à l’ordinateur. De plus, plusieurs utilisateurs peuvent utiliser un seul ordinateur en même temps.

Pour conserver un enregistrement des fichiers appartenant à quel utilisateur et pour renforcer la sécurité, Linux utilise le concept de propriété. Chaque fichier appartient à un propriétaire – un utilisateur – et à un groupe.

Lorsqu’un fichier est créé, son propriétaire est l’utilisateur qui l’a créé. Le groupe auquel appartient le fichier – le groupe «propriétaire» – est le groupe actuel de l’utilisateur. Les utilisateurs et les groupes ont des noms, et ils ont également des identités numériques, appelées identifiant d’utilisateur (ou unique) (UID) et identifiant de groupe (GID).

Lorsque vous créez un fichier, il vous appartient et appartient à votre groupe actuel. Il s’agit généralement du groupe auquel vous vous êtes connecté. Par défaut, il s’agit d’un groupe qui partage le même nom que votre nom d’utilisateur et qui a été créé lorsque vous avez été créé en tant qu’utilisateur sur le système.

Vous pouvez utiliser la commande chown pour changer les valeurs de propriété en autre chose. Vous pouvez définir un nouveau propriétaire, un nouveau groupe ou un nouveau propriétaire et un nouveau groupe en même temps. Le propriétaire d’un fichier peut modifier la propriété du groupe, mais seul root peut modifier la propriété de l’utilisateur car cela implique un autre utilisateur. Sans privilèges root, vous ne pouvez pas forcer un autre utilisateur du système à «adopter» un fichier sans le vouloir.

  Panneau des paramètres ultimes Accès en un clic aux paramètres Windows et Outlook

Pourquoi voudriez-vous changer de propriétaire?

Voici quelques exemples de situations dans lesquelles vous pourriez vouloir faire cela:

Si vous transférez des fichiers entre différents systèmes d’exploitation Linux ou de type Unix, vous devrez changer les propriétaires d’utilisateurs et de groupes pour les nouveaux propriétaires d’utilisateurs et de groupes du compte sous lequel vous souhaitez utiliser les fichiers sur le nouvel ordinateur Linux.
Un utilisateur peut quitter votre organisation et tous ses fichiers seront sous la responsabilité d’un autre membre du personnel. Vous devrez remplacer le propriétaire et le propriétaire du groupe par le membre du personnel désormais responsable de ces fichiers.
Vous pouvez créer un script qui sera utilisé par un utilisateur spécifique.
Vous pouvez créer un fichier ou un répertoire connecté en tant que root, mais vous souhaitez qu’il soit accessible à un utilisateur spécifique.

Affichage de vos groupes, UID et GID

À lister les groupes vous êtes, vous pouvez utiliser la commande groups.

groups

groupes dans une fenêtre de terminal

Pour obtenir une liste des groupes, leurs identifiants numériques, et votre UID et GID, utilisez la commande id:

id

id dans une fenêtre de terminal

Vous pouvez utiliser certaines options avec ID pour affiner la sortie.

-u: Liste votre UID.
-g: Liste votre GID effectif (actuel).
-nu: liste votre nom d’utilisateur.
-ng: Liste le nom de votre groupe actuel.

id -u
id -g
id -nu
id -ng

Sortie de commande id dans une fenêtre de terminal

Affichage de la propriété des utilisateurs et des groupes d’un fichier

Pour voir les propriétaires d’un fichier ou d’un répertoire, utilisez l’option -l (liste longue) avec ls.

ls -l
ls -l dans une fenêtre de terminal

On voit que le nom dave apparaît deux fois dans la liste. L’apparence la plus à gauche nous indique que le propriétaire du fichier est un utilisateur appelé Dave. Le dave le plus à droite nous dit que le fichier appartient à un groupe également appelé dave.

  Comment exécuter automatiquement des scripts PowerShell sur Windows 10

Par défaut, lorsqu’un utilisateur Linux est créé, il est ajouté à un groupe privé nommé d’après son nom d’utilisateur. Ils sont le seul membre de ce groupe.

Ce fichier exécutable appartient à l’utilisateur mary et le groupe auquel appartient le fichier est le groupe privé de mary.

ls -l

ls -l dans une fenêtre de terminal

Ce fichier appartient à l’utilisateur oscar, mais le groupe auquel appartient le fichier s’appelle researchlab. Cela signifie que d’autres membres du groupe researchlab peuvent accéder à ce fichier, selon les autorisations de fichier qui ont été définies pour les membres de ce groupe.

ls -l dans une fenêtre de terminal

Modification de la propriété de l’utilisateur

Voyons quelques exemples. Cette commande changera la propriété de l’utilisateur du fichier while.c en l’utilisateur mary.

sudo chown mary while.c

sudo chown mary while.c dans une fenêtre de terminal

Nous pouvons utiliser ls pour voir les modifications apportées aux propriétés du fichier.

ls -l while.c

ls -l while.c dans une fenêtre de terminal

Vous pouvez utiliser chown pour modifier la propriété de plusieurs fichiers à la fois.

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

sudo chown mary getval.c global.c goto.c dans une fenêtre de terminal

Cela modifie la propriété de l’utilisateur sur les trois fichiers.

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

ls -l getval.c global.c goto.c dans une fenêtre de terminal

Vous pouvez utiliser des caractères génériques pour sélectionner des groupes de fichiers. Cette commande modifiera la propriété de l’utilisateur de tous les fichiers commençant par la lettre «c».

sudo chown mary c*.*

sudo chown mary c *. * dans une fenêtre de terminal

Tous les fichiers auront désormais Mary comme propriétaire. Notez qu’aucune propriété de groupe n’a été modifiée.

ls -l mary c*.*

ls -l mary c *. * dans une fenêtre de terminal

Changeons la propriété d’un répertoire. Nous passons simplement le nom du répertoire à chown au lieu d’un nom de fichier.

sudo chown mary ./archive/

sudo chown mary ./archive/ dans une fenêtre de terminal

Pour vérifier les propriétés de propriété du répertoire, nous utilisons ls, mais également l’option -d (répertoire). Cela répertorie les propriétés du répertoire, pas les fichiers qu’il contient.

ls -l -d ./archive/

ls -l -d ./archive/ dans une fenêtre de terminal

Pour modifier la propriété de tous les fichiers d’un répertoire, vous pouvez utiliser l’option -R (récursive). Cette option modifiera la propriété de l’utilisateur de tous les fichiers dans le dossier d’archive.

sudo chown -R mary ./archive/

sudo chown -R mary ./archive/ dans une fenêtre de terminal

Regardons maintenant les fichiers dans le répertoire archive.

ls -l ./archive/

ls -l ./archive/ dans une fenêtre de terminal

Comme prévu, tous les fichiers appartiennent désormais à Mary.

  Comment ne plus jamais «retirer en toute sécurité» une clé USB sous Windows 10

Changer la propriété du groupe

Il existe différentes manières de modifier la propriété du groupe.

Pour modifier la propriété du groupe en même temps que vous changez la propriété de l’utilisateur, transmettez le nouveau nom de propriétaire et le nouveau nom de groupe avec un signe deux-points «:» les séparant. Le groupe doit déjà exister.

sudo chown mary:researchlab charm.c

sudo chown mary: researchlab charm.c dans une fenêtre de terminal

Le propriétaire de l’utilisateur et le groupe auquel appartient le fichier ont tous deux été modifiés.

ls -l charm.c

ls -l charm.c dans une fenêtre de terminal

Un moyen abrégé de changer la propriété du groupe au groupe actuel du nouveau propriétaire, il suffit de fournir les deux points et d’omettre le nom du groupe.

sudo chown mary: caps.c

sudo chown mary: caps.c dans une fenêtre de terminal

ls -l caps.c

ls -l caps.c dans une fenêtre de terminal

La propriété de l’utilisateur et la propriété du groupe ont été remplacées par mary.

Pour modifier uniquement la propriété du groupe, faites-le précéder de deux points et omettez le nom d’utilisateur. Le propriétaire de l’utilisateur ne sera pas modifié.

sudo chown :researchlab at.c

sudo chown: researchlab at.c dans une fenêtre de terminal

ls -l at.c

ls -l at.c dans une fenêtre de terminal

La propriété du groupe a été modifiée, mais la propriété de l’utilisateur reste la même.

Utilisation de Chown avec les valeurs UID et GID

Vous pouvez utiliser les valeurs numériques UID et GID avec la commande chown. Cette commande définira l’utilisateur et la propriété du groupe sur mary.

sudo chown 1001:1001 at.c

sudo chown 1001: 1001 at.c dans une fenêtre de terminal

ls -l at.c

ls -l at.c dans une fenêtre de terminal

La possession est les neuf dixièmes de la loi

Ou c’est ce qu’ils disent. Mais sous Linux, la propriété est une partie importante de la sécurité des fichiers, les autorisations sur les fichiers fournissant le reste. Utilisez les commandes chown et chmod pour sécuriser l’accès aux fichiers sur votre système.