Linux : comment changer le propriétaire d’un fichier avec la commande chown ?
Sommaire
- I. Présentation
- II. La syntaxe de la commande chown
- III. Exemples d'utilisation de chown
- A. Comment modifier le propriétaire d'un fichier ?
- B. Comment modifier le propriétaire sur un ensemble de fichiers ?
- C. Comment modifier le groupe attribué à un fichier ?
- D. Comment utiliser un fichier de référence avec chown ?
- E. Le mode verbeux de la commande chown
- F. Vérifier le propriétaire et le groupe avant la modification
- IV. Conclusion
I. Présentation
Comment modifier l'utilisateur propriétaire d'un fichier ou d'un dossier sous Linux ? La commande chown apporte une réponse à cette question. En tant qu'administrateur système, c'est une opération que vous devez être en mesure d'effectuer.
La commande chown (abréviation de "change owner") est une commande indispensable sous Linux. Elle permet de modifier le propriétaire et le groupe associés à un ou plusieurs fichiers ou dossiers. En complément de la commande chown, vous devez aussi connaître la commande chmod puisqu'elle permet de modifier les permissions sur un fichier ou un dossier. Il y a une réelle complémentarité entre ces deux commandes. Ensemble, elles permettent de gérer les permissions d'accès, et donc de contrôler qui a accès à quoi.
Version originale de l'article : 3 décembre 2011.
II. La syntaxe de la commande chown
Commençons par évoquer la syntaxe de base de la commande chown.
chown [OPTIONS] propriétaire[:groupe] fichier
- [OPTIONS] : une ou plusieurs options pour adapter le comportement de la commande chown (activer la récursivité, par exemple)
- propriétaire : le nouvel utilisateur propriétaire du fichier spécifié dans la commande
- groupe : le nouveau groupe "propriétaire" associé au fichier (facultatif)
- fichier : le fichier ou le répertoire sur lequel appliquer la modification.
Donc, la présentation de la syntaxe m'amène à vous parler également des principales options de la commande chown :
- -R (--recursive) : appliquer les modifications de façon récursive à tous les fichiers et sous-dossiers situés sous un dossier racine.
- -v (--verbose) : afficher les changements effectués pour chaque fichier (meilleure visibilité sur les actions effectuées).
- --reference= : utiliser un fichier de référence pour copier ses propriétés (propriétaire et groupe).
- --help : afficher l'aide et les options disponibles pour la commande.
L'utilisateur propriétaire et le groupe associé à un fichier sont visibles lors de l'utilisation de la commande ls. Ci-dessous, un exemple.
III. Exemples d'utilisation de chown
En lisant la suite de cet article, vous allez apprendre à utiliser la commande chown avec différents cas d'usage.
A. Comment modifier le propriétaire d'un fichier ?
Pour changer le propriétaire d'un fichier appelé "it-connect.txt" et le définir à l'utilisateur "flo" :
chown flo it-connect.txt
Remarque : l'ajout de "sudo" en préfixe peut être nécessaire, tout dépend de l'utilisateur avec lequel vous agissez, du fichier sur lequel vous agissez et de l'opération souhaitée. Si vous devez modifier le propriétaire sur un fichier système ou un fichier qui n'est pas dans le "/home/" de votre utilisateur, il est nécessaire d'utiliser "sudo" (dans la majorité des cas).
Suite à l'exécution de cette commande, l'utilisateur "flo" devient le nouveau propriétaire de ce fichier. Vous pouvez le vérifier avec la commande suivante :
ls -l it-connect.txt
La modification est bien visible. La commande chown que nous venons d'exécuter a modifié l'utilisateur propriétaire, soit la valeur encadrée en orange sur l'image ci-dessous.
Par ailleurs, pour changer l'utilisateur propriétaire ainsi que le groupe, la syntaxe est légèrement différente. L'exemple ci-dessous définit l'utilisateur "flo" comme propriétaire, tout en associant le groupe "it-connect" :
sudo chown flo:it-connect it-connect.txt
En fin de compte, la commande ls retourne le résultat suivant :
-rw-rw-r-- 1 flo it-connect 0 janv. 24 09:29 it-connect.txt
B. Comment modifier le propriétaire sur un ensemble de fichiers ?
Si vous souhaitez changer le propriétaire de tous les fichiers situés dans un répertoire, vous devez utiliser l'option "-R". Cette option permet d'effectuer la modification du propriétaire (et éventuellement du groupe) de façon récursive. Ici, l'opération est effectuée de façon récursive sur le répertoire "/home/flo/data".
sudo chown -R flo /home/flo/data
C. Comment modifier le groupe attribué à un fichier ?
Si vous souhaitez changer uniquement le groupe d'un fichier, sachez que c'est possible ! Mais, attention, vous devez utiliser une syntaxe bien particulière. En effet, vous devez préciser un deux-points (:) suivi du nom du groupe, tout en laissant vide la première partie correspondante à l'utilisateur propriétaire.
Voici un exemple :
sudo chown :it-connect demo.txt
Cette commande modifie uniquement le groupe associé au fichier "demo.txt", sans affecter le propriétaire actuel.
Pour changer le groupe sur plusieurs fichiers de manière récursive :
sudo chown -R :it-connect /home/flo/data
Suite à l'exécution de cette commande, tous les fichiers et sous-répertoires situés sous la racine "/home/flo/data" auront "it-connect" comme groupe associé.
D. Comment utiliser un fichier de référence avec chown ?
La commande chown permet d'utiliser un fichier existant comme référence pour copier ses propriétés de propriétaire et de groupe. C'est en quelque sorte une façon de dupliquer ces informations.
sudo chown --reference=demo.txt fichier1.txt
Dans cet exemple, le fichier nommé "fichier1.txt" va adopter les mêmes propriétés que "demo.txt".
E. Le mode verbeux de la commande chown
L'option -v permet de visualiser les changements effectués par la commande, grâce à ce que l'on appelle le mode verbeux.
sudo chown -v flo it-connect.txt
D'ailleurs, nous pouvons mixer les différentes options. Par exemple, celle-ci, avec l'utilisation d'un fichier de référence. Le résultat de la commande contient une phrase pour expliquer le changement effectué.
sudo chown -v --reference=demo.txt fichier2.txt
appartenance de 'fichier2.txt' modifiée de root:it-connect en flo:flo
Cette fonctionnalité est particulièrement utile pour suivre les modifications opérées par des scripts.
F. Vérifier le propriétaire et le groupe avant la modification
L'option --from permet de vérifier que le fichier appartient à un utilisateur et un groupe spécifiques avant d'appliquer une modification. Si ce n'est pas le cas, l'opération est annulée. La syntaxe est la suivante :
sudo chown --from=[UtilisateurActuel]:[GroupeActuel] [NouvelUtilisateur]:[NouveauGroupe] fichier
Par exemple, pour vérifier que le fichier nommé "fichier3.txt" appartient à "flo" et au groupe "it-connect", puis changer le propriétaire à "flo" et le groupe à "flo", nous utiliserons ceci :
sudo chown -v --from=flo:it-connect flo:flo fichier3.txt
Le fait de préciser l'option "-v" active le mode verbeux afin d'obtenir le résultat du test. Ici, le test échoue, donc la commande chown n'effectue pas de modification. En fin de compte, le résultat retourné est le suivant :
l'appartenance de 'fichier3.txt' est maintenue à root:it-connect
IV. Conclusion
Suite à la lecture de ce tutoriel, vous disposez des informations nécessaires pour prendre en main la commande chown sur Linux. Elle est tout simplement indispensable pour administrer un serveur sous Linux, qu'il soit sous Debian, Ubuntu, AlmaLinux ou une autre distribution.
bonjour, florian, je trouve que les explications si dessus pour l’utilisation du « chown » sont pas faciles à comprendre pour le novice que je suis ,et partout c’est pareil, sur la doc ubuntu, et autres sites comme celui ci.
je voudrais bien apprendre, mais je suis un peu rude pour la compréhension.
est ce que la commande ~$ chown -hR matza /root /home/matza/back1 suffit?
pour supprimer le dossier back1 de sur mon disk dur .
merci de ta réponse et de la patience que tu dispose.
j’admire, les gens comme toi, parce que j’apprends doucement.
encore merci, et je te souhaites bonne année.
cordiales salutations
matza leon
j’ai 2 disques durs propriétaires root et 99 sur lesquels tout est lecture seule
comment puis-je devenir propriétaire? sur les autres le propriétaire est robert
merci pour le boulot que vous faites
si je veux xhanger le propriétaire d’un lien symbolque mais pasce vers quoi pointe ce lien ?