GNU/Linux >> Tutoriels Linux >  >> Linux

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

Sous Linux, il peut arriver que vous souhaitiez modifier les informations relatives au propriétaire et au groupe d'un fichier ou d'un répertoire. Si vous êtes un débutant en ligne de commande et que vous voulez savoir comment vous pouvez apporter de telles modifications via la ligne de commande, vous serez heureux de savoir qu'il existe une commande - appelée chown - qui vous permet de faire cela.

Avant de commencer avec le didacticiel de la commande chown, il convient de mentionner que tous les exemples et instructions mentionnés ici ont été testés sur Ubuntu 18.04 LTS et Debian 10.

Explication de la commande Linux chown

Comme déjà mentionné au début, la commande chown vous permet de changer le propriétaire du fichier et le groupe via la ligne de commande. Voici la syntaxe générique de la commande :

chown [OPTION]... [OWNER][:[GROUP]] FILE...

Voici ce que la page de manuel de l'outil en dit :

If only  an  owner  (a user  name or numeric user ID) is given, that user is made the owner of each
given file, and the files' group is not changed.  If the owner  is followed  by  a  colon  and a
group name (or numeric group ID), with no spaces between them, the group ownership of the  files  is
changed  as well.  If a colon but no group name follows the user name, that user is made the owner
of the files and the group of the files  is  changed  to that  user's  login  group. If the colon
and group are given, but the owner is omitted, only the group of the files is changed; in this case,
chown  performs  the same function as chgrp.  If only a colon is given, or if the entire operand is
empty, neither the owner nor the  group  is changed.

Les exemples de type Q&R suivants vous donneront une bonne idée du fonctionnement de la commande chown :

Q1. Comment changer le propriétaire d'un fichier ?

Prenons l'exemple suivant :

Ici, le propriétaire du fichier est « himanshu » et le groupe auquel il appartient est également « himanshu ». Maintenant, pour changer le propriétaire en "root", utilisez la commande suivante :

chown root file1

La capture d'écran suivante confirme que le propriétaire a maintenant été remplacé par "root".

Q2. Comment changer le groupe d'un fichier ?

Changer un groupe revient à changer de propriétaire. La seule différence réside dans la syntaxe de la commande, qui est la suivante :

chown :[group-name] [file-name]

Supposons donc que l'exigence soit de changer le groupe de 'file1' en 'root'. Alors la commande serait :

chown :root file1

La capture d'écran suivante montre que le groupe a été changé avec succès de 'himanshu' à 'root'.

Remarque  :Si vous vous demandez pourquoi la commande "sudo" a été utilisée, ou si vous débutez avec "sudo", vous devriez d'abord suivre notre tutoriel sur cet outil.

Q3. Comment changer à la fois le propriétaire et le groupe d'un fichier ?

Pour modifier à la fois le propriétaire et le groupe du fichier, utilisez la syntaxe suivante :

chown [new-owner]:[new-group] [file-name]

Donc, dans notre cas, pour changer le propriétaire et le groupe existants de 'root' à 'himanshu', nous utiliserons la commande suivante :

chown himanshu:himanshu file1

La capture d'écran suivante montre la commande ci-dessus en action :

Q4. Comment changer le propriétaire ou le groupe (ou les deux) après avoir vérifié le propriétaire/groupe existant ?

Il peut y avoir des situations où vous voudrez peut-être d'abord vérifier le propriétaire/groupe existant d'un fichier avant d'apporter des modifications. Donc, dans ces cas, vous pouvez utiliser le --de option de ligne de commande. Cette option vous oblige à mentionner le nom du propriétaire/groupe que vous souhaitez vérifier.

chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]

Par exemple :

chown --from=root:himanshu himanshu:root file1

La commande ci-dessus vérifiera si le propriétaire existant est 'root' et le groupe est 'himanshu'. Si oui, alors le propriétaire sera changé en 'himanshu' et le groupe deviendra 'root'.

Q5. Comment sélectionner les informations sur le propriétaire/groupe à partir d'un fichier de référence ?

Il peut également y avoir des situations dans lesquelles vous souhaiterez que chown récupère les informations relatives au propriétaire et au groupe à partir d'un fichier, au lieu de les saisir manuellement sur la ligne de commande. Dans ces cas, vous pouvez utiliser la --reference option de ligne de commande. Cette option nécessite que vous saisissiez le nom du fichier de référence.

chown --reference=[ref-file-name] [filename]

Par exemple :

chown --reference=file2 file1

Ainsi, la commande ci-dessus copiera les informations sur le propriétaire et le groupe du fichier2 vers le fichier1.

Q6. Comment faire en sorte que chown fonctionne sur des fichiers et des répertoires de manière récursive ?

Pour que la commande chown fonctionne de manière récursive sur les fichiers et les répertoires, utilisez le -R option de ligne de commande.

chown -R [new-owner]:[new-group] [directory-name-or-path]

Pour ceux qui ne le savent pas, récursif signifie que l'opération sera effectuée pour tous les fichiers du répertoire donné, ainsi que pour les fichiers et répertoires de tous les sous-répertoires.

Q7. Comment faire en sorte que chown supprime les messages d'erreur ?

Il peut arriver que la commande chown que vous exécutez donne une erreur. Par exemple, la commande suivante lorsqu'elle est exécutée sur mon système :

chown --from=himanshu:himanshu himanshu:root file4

a donné l'erreur suivante :

chown: cannot access 'file4': No such file or directory

Supposons maintenant que l'exigence soit que l'outil n'affiche pas de telles erreurs. Ensuite, cela peut être rendu possible en utilisant le -f option de ligne de commande.

La capture d'écran susmentionnée confirme que le -f l'option de ligne de commande supprime les erreurs/avertissements.

Q8. Comment changer la propriété du groupe en groupe de connexion de l'utilisateur spécifié ?

Cela peut être fait en utilisant le [utilisateur/propriétaire] : syntaxe. Par exemple, la commande suivante :

chown himanshu: file1

S'assurera que la propriété est attribuée à 'himanshu' et que le groupe est remplacé par le groupe de connexion 'himanshu'. Notez que cela est différent du cas où les deux-points (:) ne sont pas utilisés, car dans ce cas (expliqué dans Q1 ci-dessus), le groupe reste inchangé.

Une autre chose à mentionner ici est que si vous utilisez simplement deux-points (:) sans spécifier de propriétaire ou de groupe, aucun changement n'aura lieu. Par exemple :

chown : file1

Cette commande n'aura aucun effet sur la propriété du fichier par l'utilisateur ou le groupe.

Par défaut, si vous essayez de changer la propriété de l'utilisateur et du groupe d'un lien symbolique, il n'y aura aucun changement. Au lieu de cela, le fichier auquel il est lié recevra ces modifications.

Par exemple, la capture d'écran ci-dessous montre que j'ai créé un lien symbolique 'link1' dont les propriétés d'utilisateur et de groupe sont définies sur 'himanshu'. Ensuite, j'ai exécuté la commande chown pour changer l'utilisateur et le groupe en 'root'. Mais la commande n'a eu aucun effet sur le fichier de lien symbolique - à la place, c'est 'fichier1' (vers lequel pointe le lien symbolique) dont les propriétés d'utilisateur et de groupe ont été modifiées.

Cependant, si vous le souhaitez, vous pouvez remplacer ce comportement par défaut à l'aide de l'option -h.

Q10. Comment changer le propriétaire et le groupe d'un répertoire ?

Tout comme la façon dont vous le faites pour les fichiers. Voici un exemple :

chown root:root ./test-dir/

Notez que vous pouvez effectuer une vérification croisée du changement de propriétaire et de groupe pour un répertoire à l'aide de la commande stat :les champs UID et GID dans la sortie affichent les noms d'utilisateur et de groupe.

Par exemple, dans mon cas, la sortie a clairement montré la propriété modifiée du groupe d'utilisateurs.

  File: test-dir
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: 808h/2056d    Inode: 11928001    Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-07 10:31:04.867467573 +0530
Modify: 2018-08-07 10:30:53.651807123 +0530
Change: 2018-08-07 10:32:49.644427930 +0530
 Birth: -

Notez que si vous effectuez des modifications récursives (reportez-vous aux questions et réponses sur l'option -R) et que vous traitez des liens symboliques, vous disposez des options suivantes :

       The following options modify how a hierarchy is traversed when  the  -R
       option  is  also  specified.   If  more than one is specified, only the
       final one takes effect.

       -H     if a command line argument is a symbolic link  to  a  directory,
              traverse it

       -L     traverse every symbolic link to a directory encountered

       -P     do not traverse any symbolic links (default)

Q11. L'UID et le GID peuvent-ils être utilisés à la place des noms d'utilisateur et de groupe ?

Oui, vous pouvez utiliser l'ID utilisateur et l'ID de groupe au lieu des noms. La syntaxe de la commande reste cependant la même.

Par exemple :

chown 1000:1000 file1

La commande ci-dessus changera la propriété de l'utilisateur et du groupe en l'utilisateur avec l'UID 1000 et le groupe avec le GID 1000.

Q12. Comment faire en sorte que chown affiche les détails de l'opération en sortie ?

Si vous souhaitez que la commande chown affiche les détails de l'opération qu'elle effectue, utilisez l'option de ligne de commande -v.

Par exemple, cette commande :

sudo chown himanshu:himanshu link1 -v

produit la sortie suivante :

changed ownership of 'link1' from root:root to himanshu:himanshu

Maintenant, il y a une autre option -c qui agit également comme -v, juste qu'elle n'affiche aucun détail lorsque rien n'est changé.

Conclusion

La commande chown, comme la plupart d'entre vous en conviendront probablement, n'est pas difficile à utiliser. Ce qui est encore mieux, c'est que la page de manuel de l'outil contient de nombreux détails qui pourraient être utiles aux utilisateurs (en particulier aux débutants). Essayez les exemples que nous avons expliqués ici, et pour le reste des fonctionnalités/options, consultez la page de manuel de chown. En cas de doute ou de question, laissez un commentaire ci-dessous.


Linux
  1. Tutoriel de commande cd Linux pour les débutants (8 exemples)

  2. Tutoriel de commande Linux comm pour les débutants (5 exemples)

  3. Tutoriel de commande Linux df pour les débutants (8 exemples)

  4. Tutoriel de commande de date Linux pour les débutants (8 exemples)

  5. Tutoriel de commande de nom d'hôte Linux pour les débutants (5 exemples)

Tutoriel Linux who Command pour débutants (8 exemples)

Tutoriel de commande Linux nl pour les débutants (7 exemples)

Tutoriel de commande Linux nm pour les débutants (10 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)