GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Chown Command Tutorial für Anfänger (12 Beispiele)

Unter Linux kann es vorkommen, dass Sie den Besitzer und die gruppenbezogenen Informationen für eine Datei oder ein Verzeichnis ändern möchten. Wenn Sie ein Befehlszeilen-Neuling sind und wissen möchten, wie Sie solche Änderungen über die Befehlszeile vornehmen können, werden Sie froh sein zu wissen, dass es einen Befehl namens chown gibt - damit können Sie dies tun.

Bevor wir mit dem Tutorial zum Befehl chown beginnen, ist es erwähnenswert, dass alle hier erwähnten Beispiele und Anweisungen auf Ubuntu 18.04 LTS und Debian 10 getestet wurden.

Linux-chown-Befehl erklärt

Wie bereits eingangs erwähnt, können Sie mit dem Befehl chown den Dateibesitzer und die Gruppe über die Befehlszeile ändern. Es folgt die generische Syntax des Befehls:

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

Folgendes steht auf der Manpage des Tools dazu:

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.

Die folgenden Q&A-artigen Beispiele geben Ihnen eine gute Vorstellung davon, wie der Befehl chown funktioniert:

Q1. Wie ändere ich den Eigentümer einer Datei?

Betrachten Sie das folgende Beispiel:

Hier ist der Eigentümer der Datei „himanshu“, und die Gruppe, zu der sie gehört, ist ebenfalls „himanshu“. Um nun den Eigentümer zu ändern, sagen Sie „root“, verwenden Sie den folgenden Befehl:

chown root file1

Der folgende Screenshot bestätigt, dass der Eigentümer nun auf „root“ geändert wurde.

Q2. Wie ändere ich die Gruppe einer Datei?

Das Ändern einer Gruppe ähnelt dem Ändern des Besitzers. Der einzige Unterschied besteht in der Syntax des Befehls, die wie folgt lautet:

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

Angenommen, die Anforderung besteht darin, die Gruppe von „Datei1“ in „Root“ zu ändern. Dann wäre der Befehl:

chown :root file1

Der folgende Screenshot zeigt, dass die Gruppe erfolgreich von „himanshu“ auf „root“ geändert wurde.

Hinweis :Falls Sie sich fragen, warum der Befehl „sudo“ verwendet wurde, oder falls Sie neu bei „sudo“ sind, sollten Sie zuerst unser Tutorial zu diesem Tool durchgehen.

Q3. Wie kann man sowohl den Eigentümer als auch die Gruppe einer Datei ändern?

Um sowohl den Eigentümer als auch die Gruppe der Datei zu ändern, verwenden Sie die folgende Syntax:

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

In unserem Fall verwenden wir also den folgenden Befehl, um den vorhandenen Eigentümer und die Gruppe von „root“ in „himanshu“ zu ändern:

chown himanshu:himanshu file1

Der folgende Screenshot zeigt den obigen Befehl in Aktion:

Q4. Wie kann man den Eigentümer oder die Gruppe (oder beides) ändern, nachdem der vorhandene Eigentümer/die vorhandene Gruppe überprüft wurde?

Es kann Situationen geben, in denen Sie zuerst den vorhandenen Eigentümer/die vorhandene Gruppe einer Datei überprüfen möchten, bevor Sie Änderungen vornehmen. Für diese Fälle können Sie also --from verwenden Befehlszeilenoption. Bei dieser Option müssen Sie den Eigentümer-/Gruppennamen angeben, den Sie bestätigen möchten.

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

Zum Beispiel:

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

Der obige Befehl prüft, ob der vorhandene Eigentümer „root“ und die Gruppe „himanshu“ ist. Wenn ja, dann wird der Eigentümer zu „himanshu“ geändert und die Gruppe wird zu „root“.

F5. Wie wähle ich Besitzer-/Gruppeninformationen aus einer Referenzdatei aus?

Es kann auch Situationen geben, in denen Sie möchten, dass chown besitzer- und gruppenbezogene Informationen aus einer Datei abholt, anstatt sie manuell in die Befehlszeile einzugeben. Für diese Fälle können Sie --reference verwenden Befehlszeilenoption. Bei dieser Option müssen Sie den Namen der Referenzdatei eingeben.

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

Zum Beispiel:

chown --reference=file2 file1

Der obige Befehl kopiert also die Eigentümer- und Gruppeninformationen von Datei2 nach Datei1.

Q6. Wie lässt man chown rekursiv mit Dateien und Verzeichnissen arbeiten?

Um den chown-Befehl rekursiv auf Dateien und Verzeichnisse wirken zu lassen, verwenden Sie -R Befehlszeilenoption.

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

Für diejenigen, die es nicht wissen, bedeutet rekursiv, dass die Operation für alle Dateien im angegebenen Verzeichnis sowie für Dateien und Verzeichnisse in allen Unterverzeichnissen ausgeführt wird.

F7. Wie kann man Chown dazu bringen, Fehlermeldungen zu unterdrücken?

Es kann vorkommen, dass der von Ihnen ausgeführte Befehl chown einen Fehler ausgibt. Zum Beispiel der folgende Befehl, wenn er auf meinem System ausgeführt wird:

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

gab den folgenden Fehler:

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

Nehmen wir nun an, die Anforderung ist, dass das Tool solche Fehler nicht anzeigen soll. Dann kann dies mit dem -f ermöglicht werden Befehlszeilenoption.

Der oben genannte Screenshot bestätigt, dass das -f Befehlszeilenoption unterdrückt Fehler/Warnungen.

Q8. Wie ändere ich den Gruppenbesitz in die Login-Gruppe des angegebenen Benutzers?

Dies kann mit [user/owner]: erfolgen Syntax. Beispielsweise der folgende Befehl:

chown himanshu: file1

Wird sicherstellen, dass der Besitz an „himanshu“ übergeben wird und die Gruppe in die Anmeldegruppe von „himanshu“ geändert wird. Beachten Sie, dass sich dies von dem Fall unterscheidet, in dem der Doppelpunkt (:) nicht verwendet wird, da in diesem Fall (erklärt in Q1 oben) die Gruppe unverändert bleibt.

Erwähnenswert ist auch, dass, wenn Sie nur einen Doppelpunkt (:) verwenden, ohne einen Eigentümer oder eine Gruppe anzugeben, keine Änderung stattfindet. Zum Beispiel:

chown : file1

Dieser Befehl hat keine Auswirkung auf den Benutzer- oder Gruppenbesitz der Datei.

Wenn Sie versuchen, den Benutzer- und Gruppenbesitz eines symbolischen Links zu ändern, wird standardmäßig keine Änderung vorgenommen. Stattdessen erhält die verknüpfte Datei diese Änderungen.

Der folgende Screenshot zeigt beispielsweise, dass ich einen symbolischen Link „link1“ erstellt habe, dessen Benutzer- und Gruppenbesitz auf „himanshu“ festgelegt ist. Dann habe ich den chown-Befehl ausgeführt, um Benutzer und Gruppe auf „root“ zu ändern. Aber der Befehl hatte keine Auswirkung auf die symbolische Linkdatei – stattdessen wurde „Datei1“ (auf die der symbolische Link zeigt) geändert, dessen Benutzer- und Gruppenbesitz geändert wurde.

Wenn Sie möchten, können Sie dieses Standardverhalten jedoch mit der Option -h überschreiben.

F10. Wie ändere ich den Besitzer und die Gruppe für ein Verzeichnis?

Genauso wie Sie es für Dateien tun. Nachfolgend ein Beispiel:

chown root:root ./test-dir/

Beachten Sie, dass Sie die Eigentümer- und Gruppenänderung für ein Verzeichnis mit dem stat-Befehl gegenprüfen können – die UID- und GID-Felder in der Ausgabe zeigen Benutzer- und Gruppennamen an.

In meinem Fall zeigte die Ausgabe beispielsweise deutlich den geänderten Besitz der Benutzergruppe.

  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: -

Beachten Sie, dass Ihnen bei rekursiven Änderungen (siehe Fragen und Antworten zur Option -R) und symbolischen Links die folgenden Optionen zur Verfügung stehen:

       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)

F11. Können UID und GID anstelle von Benutzer- und Gruppennamen verwendet werden?

Ja, Sie können Benutzer-ID und Gruppen-ID anstelle von Namen verwenden. Die Syntax des Befehls bleibt jedoch gleich.

Zum Beispiel:

chown 1000:1000 file1

Der obige Befehl ändert den Benutzer- und Gruppenbesitz auf den Benutzer mit der UID 1000 und die Gruppe mit der GID 1000.

Q12. Wie bringt man Chown dazu, Details der Operation in der Ausgabe anzuzeigen?

Wenn Sie möchten, dass der Befehl chown Details der von ihm durchgeführten Operation anzeigt, verwenden Sie die Befehlszeilenoption -v.

Zum Beispiel dieser Befehl:

sudo chown himanshu:himanshu link1 -v

erzeugt die folgende Ausgabe:

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

Jetzt gibt es eine weitere Option -c, die sich auch wie -v verhält, nur dass sie keine Details anzeigt, wenn nichts geändert wurde.

Schlussfolgerung

Der Befehl chown ist, wie die meisten von Ihnen wahrscheinlich zustimmen werden, nicht schwer zu verwenden. Noch besser ist, dass die Manpage des Tools viele Details enthält, die für Benutzer (insbesondere Neulinge) hilfreich sein könnten. Probieren Sie die Beispiele aus, die wir hier erklärt haben, und gehen Sie für die restlichen Funktionen/Optionen die chown-Manpage durch. Hinterlassen Sie im Zweifelsfall oder bei Fragen unten einen Kommentar.


Linux
  1. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  2. Linux-Kommando-Tutorial für Anfänger (5 Beispiele)

  3. Linux-df-Befehls-Tutorial für Anfänger (8 Beispiele)

  4. Linux Date Command Tutorial für Anfänger (8 Beispiele)

  5. Linux-Hostname-Befehls-Tutorial für Anfänger (5 Beispiele)

Linux Who Command Tutorial für Anfänger (8 Beispiele)

Linux nl Command Tutorial für Anfänger (7 Beispiele)

Linux-nm-Befehls-Tutorial für Anfänger (10 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)