Linux / Commande chown : changer le propriétaire et le groupe d’un fichier

chown change le propriétaire d'un fichier ou d'un répertoire, ainsi que son groupe si vous le précisez. La forme alice conserve le groupe existant ; alice:editors fixe les deux attributs. Vérifiez les comptes et le chemin avant l'opération, particulièrement pour des fichiers utilisés par un service.

Choisir ce qui doit changer

chown [options] propriétaire[:groupe] fichier…

Le propriétaire et le groupe sont des identités associées au fichier. Les droits de lecture, d'écriture et d'exécution se règlent avec chmod et les permissions de fichiers. Une modification du propriétaire peut néanmoins modifier les droits effectivement applicables et certains bits spéciaux selon le système.

Forme GNU Attributs demandés
alice Propriétaire alice ; groupe inchangé.
alice:editors Propriétaire alice et groupe editors.
:editors Groupe editors uniquement.
alice: Propriétaire alice et groupe de connexion d'alice : le deux-points final a donc un effet.

Il n'y a pas d'espace autour du deux-points. N'utilisez pas le point comme séparateur dans un nouveau script : il peut appartenir au nom du compte et cette ancienne notation n'est pas portable.

Vérifier les identités et le fichier ciblé

Les exemples supposent que le compte alice, le groupe editors et le fichier report.txt existent. Remplacez-les par les valeurs adaptées ; ne créez pas un compte simplement pour exécuter une ligne d'exemple.

id alice
ls -l report.txt
stat -c '%U:%G %n' report.txt
stat -c '%u:%g %a %n' report.txt

%U et %G affichent les noms résolus ; %u et %g, leurs identifiants numériques UID et GID. Le champ %a relève le mode. Ces formats sont ceux de GNU stat. Le compte rendu numérique est utile si les noms ne sont pas résolus ou s'ils correspondent à des identifiants différents selon la machine.

Dans un conteneur ou sur un système de fichiers réseau, ne déduisez donc pas une identité numérique du seul nom affiché. Comparez le résultat d'id pour le compte concerné à celui de stat dans le contexte où l'application accède réellement aux données.

Modifier puis contrôler le résultat

La modification du propriétaire nécessite généralement les privilèges administrateur. Pour ne changer que le propriétaire :

sudo chown alice report.txt
stat -c '%U:%G %n' report.txt

Pour affecter simultanément le propriétaire et le groupe :

sudo chown alice:editors report.txt
stat -c '%U:%G %n' report.txt

Si les noms sont résolus, un résultat attendu pour cette seconde opération est :

alice:editors report.txt

Le changement réussit habituellement sans message. Si chown signale une erreur, ne considérez pas l'opération comme terminée ; relisez le diagnostic puis contrôlez le fichier. Un système de fichiers en lecture seule ou des restrictions d'un stockage distant ne se corrigent pas en répétant la même commande avec un chemin plus large.

Avant une intervention importante, conservez les propriétaires, groupes, modes et autres attributs nécessaires à la restauration. Revenir à l'ancien propriétaire et à l'ancien groupe peut se faire avec les valeurs relevées et les droits appropriés, mais cela ne rétablit pas automatiquement des bits spéciaux qui auraient été retirés. Un changement récursif portant sur des propriétaires différents exige un relevé par fichier ou une sauvegarde adaptée.

Comprendre les options et les liens symboliques

Option Utilité
-R Change aussi les contenus des répertoires parcourus. Un chemin erroné peut affecter de nombreux fichiers.
-h Demande d'agir sur le lien symbolique lui-même, plutôt que sur sa cible.
--reference=fichier Prend le propriétaire et le groupe du fichier de référence.
-v Affiche une information pour chaque fichier traité.

Hors récursion, GNU chown suit par défaut un lien symbolique donné comme argument pour agir sur sa cible. Le comportement d'une traversée récursive et celui du déréférencement sont des choix distincts : consultez les options -H, -L et -P de votre version avant une intervention sur une arborescence contenant des liens.

Inspectez d'abord un périmètre précis avec ls ou find et confirmez l'identité attendue par le service. Modifier tous les fichiers d'une racine web pour résoudre un seul refus d'accès peut empêcher d'autres processus de fonctionner. La prise en charge des changements de propriétaire de liens et le retrait éventuel de bits setuid ou setgid dépendent aussi du système.

Le manuel officiel de GNU chown décrit les formes propriétaire:groupe, les options et les règles des liens. Consultez également man chown pour les possibilités réellement installées.