GNU/Linux >> Tutoriels Linux >  >> Linux

12 exemples de commandes Linux Chown pour changer de propriétaire et de groupe

Le concept de propriétaire et de groupes de fichiers est fondamental pour Linux. Chaque fichier est associé à un propriétaire et à un groupe. Vous pouvez utiliser les commandes chown et chgrp pour changer le propriétaire ou le groupe d'un fichier ou d'un répertoire particulier.

Dans cet article, nous discuterons de la commande 'chown' car elle couvre la majeure partie de 'chgrp ' également.

Même si vous connaissez déjà cette commande, l'un des exemples mentionnés ci-dessous est probablement nouveau pour vous.

1. Changer le propriétaire d'un fichier

# ls -lart tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

# chown root tmpfile

# ls -l tmpfile
-rw-r--r-- 1 root family 0 2012-05-22 20:03 tmpfile

Nous voyons donc que le propriétaire du fichier est passé de "himanshu" à "root".

2. Changer le groupe d'un fichier

Grâce à la commande chown, le groupe (auquel appartient un fichier) peut également être modifié.

# ls -l tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

# chown :friends tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile

Si vous observez attentivement, le groupe du fichier est passé de « famille » à « amis ». Nous voyons donc qu'en ajoutant simplement un ':' suivi du nouveau nom de groupe, le groupe du fichier peut être modifié.

3. Modifier à la fois le propriétaire et le groupe

# ls -l tmpfile
-rw-r--r-- 1 root family 0 2012-05-22 20:03 tmpfile

# chown himanshu:friends tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile

Nous voyons donc qu'en utilisant la syntaxe ': ', le propriétaire ainsi que le groupe peuvent être modifiés en une seule fois.

4. Utilisation de la commande chown sur le fichier de lien symbolique

Voici un lien symbolique :

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

Nous voyons donc que le lien symbolique 'tmpfile_symlink' renvoie au fichier 'tmpfile'.

Voyons ce qui se passe si la commande chown est lancée sur un lien symbolique :

# chown root:friends tmpfile_symlnk

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

Lorsque la commande chown a été émise sur un lien symbolique pour changer le propriétaire ainsi que le groupe, c'est alors le référent du lien symbolique, c'est-à-dire "tmpfile" dont le propriétaire et le groupe ont été modifiés. C'est le comportement par défaut de la commande chown. De plus, il existe un drapeau '-dereference' pour le même.

5. Utilisation de la commande chown pour modifier de force le propriétaire/groupe du fichier symbolique.

En utilisant le drapeau '-h', vous pouvez changer de force le propriétaire ou le groupe d'un lien symbolique comme indiqué ci-dessous.

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

# chown -h root:friends tmpfile_symlnk

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 root friends 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

6. Modifier le propriétaire uniquement si un fichier appartient à un utilisateur particulier

En utilisant l'indicateur chown "-from", vous pouvez changer le propriétaire d'un fichier, uniquement si ce fichier appartient déjà à un propriétaire particulier.

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

# chown --from=guest himanshu tmpfile

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

# chown --from=root himanshu tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile
  • Dans l'exemple ci-dessus, nous avons vérifié que le propriétaire/groupe d'origine du fichier "tmpfile" était root/friends.
  • Nous avons ensuite utilisé l'indicateur "-from" pour changer le propriétaire en "himanshu", mais uniquement si le propriétaire existant est "invité".
  • Maintenant, comme le propriétaire actuel n'était pas un "invité". Ainsi, la commande n'a pas réussi à changer le propriétaire du fichier.
  • Nous avons ensuite essayé de changer le propriétaire si le propriétaire existant est "root" (ce qui était vrai) et cette fois la commande a réussi et le propriétaire a été changé en "himanshu".

Sur une note connexe, si vous souhaitez modifier l'autorisation d'un fichier, vous devez utiliser la commande chmod.

Si vous êtes débutant, vous devriez commencer par lire les bases des autorisations de fichiers.

7. Changer de groupe uniquement si un fichier appartient déjà à un certain groupe

Ici aussi le drapeau ‘–from’ est utilisé mais de la manière suivante :

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile

# chown --from=:friends :family tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

Étant donné que le fichier 'tmpfile' appartenait en fait au groupe 'amis', la condition était donc correcte et la commande a réussi.

Nous voyons donc qu'en utilisant le drapeau '–from=:' nous pouvons changer le groupe sous une condition particulière.

REMARQUE :En suivant le modèle "–from=:", la condition sur le propriétaire et le groupe peut être appliquée.

8. Copiez les paramètres du propriétaire/groupe d'un fichier à un autre

Ceci est possible en utilisant le drapeau ‘–reference’.

# ls -l file
-rwxr-xr-x 1 himanshu family 8968 2012-04-09 07:10 file

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

# chown --reference=file tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

Dans l'exemple ci-dessus, nous avons d'abord vérifié le propriétaire/groupe du fichier de référence "fichier", puis vérifié le propriétaire/groupe du fichier cible "tmpfile". Les deux étaient différents. Ensuite, nous avons utilisé la commande chown avec l'option '-reference' pour appliquer les paramètres de propriétaire/groupe du fichier de référence au fichier cible. La commande a réussi et les paramètres de propriétaire/groupe de 'tmpfile' ont été rendus similaires au 'fichier'.

9. Changer le propriétaire/groupe des fichiers en parcourant les répertoires de manière récursive

Ceci est rendu possible par l'option '-R'.

# ls -l linux/linuxKernel
-rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/linuxKernel

# ls -l linux/ubuntu/ub10
-rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/ubuntu/ub10

# ls -l linux/redhat/rh7
-rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/redhat/rh7

# chown -R himanshu:family linux/

# ls -l linux/redhat/rh7
-rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/redhat/rh7

# ls -l linux/ubuntu/ub10
-rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/ubuntu/ub10

# ls -l linux/linuxKernel
-rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/linuxKernel

Nous voyons donc qu'après avoir vérifié le propriétaire/groupe de tous les fichiers dans le répertoire "linux" et ses deux sous-répertoires "ubuntu" et "redhat". Nous avons émis la commande chown avec l'option '-R' pour changer à la fois le propriétaire et le groupe. La commande a réussi et le propriétaire/groupe de tous les fichiers a été modifié avec succès.

10. Utilisation de la commande chown sur un répertoire de liens symboliques

Voyons ce qui se passe si nous lançons la commande 'chown' pour changer de manière récursive le propriétaire/groupe de fichiers dans un répertoire qui est un lien symbolique vers un autre répertoire.

Voici un répertoire de liens symboliques ‘linux_symlnk’ qui renvoie au répertoire ‘linux’ (déjà utilisé dans l'exemple ‘9’ ci-dessus) :

$ ls -l linux_symlnk
lrwxrwxrwx 1 himanshu family 6 2012-05-22 22:02 linux_symlnk -> linux/

Maintenant, changeons le propriétaire (de himanshu à root) de ce répertoire de liens symboliques de manière récursive :

# chown -R root:friends linux_symlnk

# ls -l linux_symlnk/
-rw-r--r-- 1 himanshu friends    0 2012-05-22 21:52 linuxKernel
drwxr-xr-x 2 himanshu friends 4096 2012-05-22 21:52 redhat
drwxr-xr-x 2 himanshu friends 4096 2012-05-22 21:52 ubuntu

Dans la sortie ci-dessus, nous voyons que le propriétaire des fichiers et des répertoires n'a pas été modifié. En effet, par défaut, la commande 'chown' ne peut pas traverser un lien symbolique. C'est le comportement par défaut mais il y a aussi un indicateur "-P" pour cela.

11. Utiliser chown pour changer de force le propriétaire/groupe d'un répertoire de liens symboliques de manière récursive

Ceci peut être réalisé en utilisant le drapeau -H

# chown -R -H guest:family linux_symlnk

# ls -l linux_symlnk/
total 8
-rw-r--r-- 1 guest family    0 2012-05-22 21:52 linuxKernel
drwxr-xr-x 2 guest family 4096 2012-05-22 21:52 redhat
drwxr-xr-x 2 guest family 4096 2012-05-22 21:52 ubuntu

Nous voyons donc qu'en utilisant le drapeau -H, le propriétaire/groupe de tous les fichiers/dossiers a été modifié.

12. Lister toutes les modifications apportées par la commande chown

Utilisez l'option détaillée -v, qui indiquera si la propriété du fichier a été modifiée ou conservée, comme indiqué ci-dessous.

# chown -v -R guest:friends linux
changed ownership of `linux/redhat/rh7' to guest:friends
changed ownership of `linux/redhat' retained to guest:friends
ownership of `linux/redhat_sym' retained as guest:friends
ownership of `linux/ubuntu_sym' retained as guest:friends
changed ownership of `linux/linuxKernel' to guest:friends
changed ownership of `linux/ubuntu/ub10' to guest:friends
ownership of `linux/ubuntu' retained as guest:friends
ownership of `linux' retained as guest:friends

Linux
  1. Commande Linux Cat :utilisation et exemples

  2. Commandes Linux - Présentation et exemples

  3. 5 exemples pratiques de la commande chgrp sous Linux

  4. Comment utiliser la commande chown pour changer de propriétaire sous Linux

  5. Exemples de commandes chown sous Linux

Tutoriel Linux Chown Command pour débutants (12 exemples)

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

Commande Linux Chgrp avec exemples

20 exemples pratiques de commande Chown sous Linux

Options de commande et exemples de commande Tee sous Linux

Exemples de commandes Linux chown