Skip to main content

chown-command-linux

Commande Chown sous Linux (propriété du fichier)

chown command

Introduction:

[chown]

La commande chown vous permet de modifier la propriété de l'utilisateur et/ou du groupe d'un fichier, d'un répertoire ou d'un lien symbolique donné.

Sous Linux, tous les fichiers sont associés à un propriétaire et à un groupe et se voient attribuer des droits d'accès pour le propriétaire du fichier, les membres du groupe et d'autres.

Je vous vous montre comment utiliser la commande chown à travers des exemples pratiques.

Comment utiliser chown

Avant d’expliquer comment utiliser la commande chown, commençons par revoir la syntaxe de base.

Les expressions de commande chown prennent la forme suivante :

chown [OPTIONS] USER[:GROUP] FILE(s)
  • USER est le nom d'utilisateur ou l'ID utilisateur (UID) du nouveau propriétaire.
  • GROUP est le nom du nouveau groupe ou l’ID du groupe (GID).
  • FILE(s) est le nom d'un ou plusieurs fichiers, répertoires ou liens. Les identifiants numériques doivent être préfixés par le symbole +.

Pratique

  1. USER Si seul l'utilisateur est spécifié, l'utilisateur spécifié deviendra le propriétaire des fichiers donnés. La propriété du groupe n'est pas modifiée.
  2. USER: Lorsque le nom d'utilisateur est suivi de deux points : et que le nom du groupe n'est pas indiqué, l'utilisateur devient le propriétaire des fichiers et la propriété du groupe de fichiers est modifiée en fonction du groupe de connexion de l'utilisateur.
  3. USER:GROUP Si l'utilisateur et le groupe sont tous deux spécifiés (sans espace entre eux), la propriété de l'utilisateur des fichiers est modifiée pour l'utilisateur donné et la propriété du groupe est modifiée pour le groupe donné.
  4. :GROUP Si l'utilisateur est omis et que le groupe est préfixé par deux points :, seule la propriété du groupe des fichiers est modifiée pour le groupe donné.
  5. : Si seuls deux points : sont donnés, sans spécifier l'utilisateur et le groupe, aucun changement n'est effectué.

Par défaut, chown ne produit aucune sortie en cas de succès et renvoie zéro. Pour savoir à qui appartient un fichier ou à quel groupe appartient le fichier, utilisez la commande ls -l

ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Mai  9 23:51 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> Owner
  • Les utilisateurs réguliers peuvent modifier le groupe de fichiers uniquement s'ils sont propriétaires du fichier et uniquement pour un groupe dont ils sont membres.
  • Les utilisateurs administrateurs peuvent modifier la propriété du groupe de tous les fichiers.

Comment changer le propriétaire d'un fichier

Pour changer le propriétaire d'un fichier, utilisez la commande chown suivie du nom d'utilisateur du nouveau propriétaire et du fichier cible comme argument :

chown USER FILE

Exemple: la commande suivante changera la propriété d’un fichier nommé file1 en un nouveau propriétaire nommé linuxmekoo :

chown linuxmekoo file1

Pour modifier la propriété de plusieurs fichiers ou répertoires, spécifiez-les sous forme de liste séparée par des espaces. La commande ci-dessous modifie la propriété d'un fichier nommé file1 et d'un répertoire dir1 en un nouveau propriétaire nommé linuxmekoo :

chown linuxmekoo file1 dir1

L'ID utilisateur numérique (UID) peut être utilisé à la place du nom d'utilisateur. L'exemple suivant modifie la propriété d'un fichier nommé file2 en un nouveau propriétaire avec un UID de 1000 :

chown 1000 file2

Si un propriétaire numérique existe sous forme de nom d'utilisateur, la propriété sera transférée au nom d'utilisateur. Pour éviter cela, préfixez l'ID avec +

chown 1000 file2

Comment modifier le propriétaire et le groupe d'un fichier

Pour modifier à la fois le propriétaire et le groupe d'un fichier, utilisez la commande chown suivie du nouveau propriétaire et du nouveau groupe séparés par deux points (:) sans espaces intermédiaires et du fichier cible.

chown USER:GROUP FILE

La commande suivante changera la propriété d'un fichier nommé file1 en un nouveau propriétaire nommé linuxmekoo et group users :

chown linuxmekoo:users file1

Si vous omettez le nom du groupe après les deux points (:), le groupe du fichier est remplacé par le groupe de connexion de l'utilisateur spécifié :

chown linuxmekoo: file1

Comment modifier le groupe d'un fichier

Pour modifier uniquement le groupe d'un fichier, utilisez la commande chown suivie de deux points (:) et du nouveau nom du groupe (sans espace entre eux) et du fichier cible comme argument :

chown :GROUP FILE

La commande suivante changera le groupe propriétaire d'un fichier nommé file1 en www-data :

chown :www-data file1

Une autre commande que vous pouvez utiliser pour modifier la propriété du groupe des fichiers est chgrp

Comment modifier la propriété des liens symboliques

Lorsque l'option récursive n'est pas utilisée, la commande chown modifie la propriété du groupe des fichiers vers lesquels pointent les liens symboliques, et non les liens symboliques eux-mêmes.

Exemple, si vous essayez de changer le propriétaire et le groupe du lien symbolique symlink1 qui pointe vers /var/www/file1, chown changera la propriété du fichier ou du répertoire vers lequel pointe le lien symbolique :

chown www-data: symlink1

Il y a de fortes chances qu'au lieu de modifier la propriété de la cible, vous obteniez une erreur « impossible de déréférencer « symlink1 » : autorisation refusée ».

L'erreur se produit car, par défaut, sur la plupart des distributions Linux, les liens symboliques sont protégés et vous ne pouvez pas opérer sur les fichiers cibles. Cette option est spécifiée dans /proc/sys/fs/protected_symlinks. 1 signifie activé et 0 est désactivé.

[!Informations] Nous recommandons de ne pas désactiver la protection des liens symboliques.

Pour modifier la propriété du groupe du lien symbolique lui-même, utilisez l'option -h :

chown -h www-data symlink1

Comment modifier de manière récursive la propriété d'un fichier

Pour opérer de manière récursive sur tous les fichiers et répertoires sous le répertoire donné, utilisez l'option -R (--recursive) :

chown -R USER:GROUP DIRECTORY

L'exemple suivant modifiera la propriété de tous les fichiers et sous-répertoires sous le répertoire /var/www en un nouveau propriétaire et groupe nommé www-data :

chown -R www-data: /var/www

Si le répertoire contient des liens symboliques, passez l'option -h :

chown -hR www-data: /var/www

D'autres options qui peuvent être utilisées lors de la modification récursive de la propriété du répertoire sont -H et -L

Si l'argument transmis à la commande chown est un lien symbolique pointant vers un répertoire, l'option -H permet à la commande de le parcourir. L'option -L demande à chown de parcourir chaque lien symbolique vers un répertoire rencontré. En général, vous ne devez pas utiliser ces options, car vous risquez de perturber votre système ou de créer un risque de sécurité.

Utilisation d'un fichier de référence

L'option --reference=ref_file vous permet de modifier la propriété de l'utilisateur et du groupe de fichiers donnés pour qu'ils soient identiques à ceux du fichier de référence spécifié (ref_file). Si le fichier de référence est un lien symbolique, chown utilisera l'utilisateur et le groupe du fichier cible.

chown --reference=REF_FILE FILE

Exemple, la commande suivante attribuera la propriété utilisateur et groupe du fichier1 au fichier2

chown --reference=fichier1 fichier2

Conclusion

chown est un utilitaire de ligne de commande Linux/UNIX permettant de modifier la propriété de l'utilisateur et du groupe du fichier. Pour en savoir plus sur la commande chown, visitez la page de manuel chown ou saisissez man chown dans votre terminal.