Das Konzept von Eigentümern und Gruppen für Dateien ist grundlegend für Linux. Jede Datei ist einem Eigentümer und einer Gruppe zugeordnet. Sie können die Befehle chown und chgrp verwenden, um den Besitzer oder die Gruppe einer bestimmten Datei oder eines bestimmten Verzeichnisses zu ändern.
In diesem Artikel werden wir den Befehl 'chown' besprechen, da er den größten Teil der 'chgrp ' Befehl auch.
Auch wenn Sie diesen Befehl bereits kennen, ist wahrscheinlich eines der unten aufgeführten Beispiele neu für Sie.
1. Eigentümer einer Datei ändern
# 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
Wir sehen also, dass der Eigentümer der Datei von „himanshu“ auf „root“ geändert wurde.
2. Ändern Sie die Gruppe einer Datei
Mit dem Befehl chown kann auch die Gruppe (zu der eine Datei gehört) geändert werden.
# 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
Wenn Sie genau hinsehen, änderte sich die Gruppe der Datei von „Familie“ zu „Freunde“. Wir sehen also, dass durch einfaches Hinzufügen eines „:“ gefolgt vom neuen Gruppennamen die Gruppe der Datei geändert werden kann.
3. Ändern Sie sowohl den Eigentümer als auch die Gruppe
# 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
Wir sehen also, dass mit der Syntax „
4. Verwenden des Befehls chown für eine symbolische Linkdatei
Hier ist ein symbolischer Link :
# ls -l tmpfile_symlnk lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile
Wir sehen also, dass der symbolische Link „tmpfile_symlink“ auf die Datei „tmpfile“ verweist.
Mal sehen, was passiert, wenn der Befehl chown auf einem symbolischen Link ausgegeben wird:
# 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
Wenn der chown-Befehl auf den symbolischen Link ausgegeben wurde, um sowohl den Eigentümer als auch die Gruppe zu ändern, dann ist es der Referent des symbolischen Links, dh „tmpfile“, dessen Eigentümer und Gruppe geändert wurden. Dies ist das Standardverhalten des Befehls chown. Außerdem gibt es ein Flag „–dereference“ für dasselbe.
5. Verwenden des Befehls chown, um den Besitzer/die Gruppe der symbolischen Datei zu ändern.
Mit dem Flag „-h“ können Sie den Besitzer oder die Gruppe eines symbolischen Links erzwingen, wie unten gezeigt.
# 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. Ändern Sie den Eigentümer nur, wenn eine Datei einem bestimmten Benutzer gehört
Mit dem chown „–from“-Flag können Sie den Besitzer einer Datei nur dann ändern, wenn diese Datei bereits einem bestimmten Besitzer gehört.
# 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
- Im obigen Beispiel haben wir überprüft, dass der ursprüngliche Eigentümer/die Gruppe der Datei „tmpfile“ root/friends war.
- Als nächstes haben wir das „–from“-Flag verwendet, um den Eigentümer in „himanshu“ zu ändern, aber nur, wenn der bestehende Eigentümer „Gast“ ist.
- Nun, da der bestehende Eigentümer kein „Gast“ war. Der Befehl konnte also den Besitzer der Datei nicht ändern.
- Als nächstes haben wir versucht, den Eigentümer zu ändern, wenn der vorhandene Eigentümer „root“ ist (was wahr war), und dieses Mal war der Befehl erfolgreich und der Eigentümer wurde in „himanshu“ geändert.
Wenn Sie die Berechtigung einer Datei ändern möchten, sollten Sie den Befehl chmod verwenden.
Wenn Sie ein Anfänger sind, sollten Sie damit beginnen, die Grundlagen der Dateiberechtigungen zu lesen.
7. Gruppe nur ändern, wenn eine Datei bereits zu einer bestimmten Gruppe gehört
Auch hier wird das Flag „–from“ verwendet, aber auf folgende Weise:
# 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
Da die Datei „tmpfile“ eigentlich zur Gruppe „friends“ gehörte, war die Bedingung also korrekt und der Befehl erfolgreich.
Wir sehen also, dass wir mit dem Flag „–from=:
HINWEIS:Durch Befolgen der Vorlage „–from=
8. Kopieren Sie die Eigentümer-/Gruppeneinstellungen von einer Datei in eine andere
Dies ist durch die Verwendung des ‚–reference‘-Flags möglich.
# 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
Im obigen Beispiel haben wir zuerst den Eigentümer/die Gruppe der Referenzdatei „file“ und dann den Eigentümer/die Gruppe der Zieldatei „tmpfile“ überprüft. Beide waren unterschiedlich. Dann haben wir den Befehl chown mit der Option „–reference“ verwendet, um die Besitzer-/Gruppeneinstellungen aus der Referenzdatei auf die Zieldatei anzuwenden. Der Befehl war erfolgreich und die Eigentümer-/Gruppeneinstellungen von „tmpfile“ wurden ähnlich wie bei „file“ vorgenommen.
9. Ändern Sie den Eigentümer/die Gruppe der Dateien, indem Sie rekursiv durch die Verzeichnisse reisen
Dies wird durch die Option „-R“ ermöglicht.
# 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
Wir sehen das also, nachdem wir den Eigentümer/die Gruppe aller Dateien im Verzeichnis „linux“ und seinen beiden Unterverzeichnissen „ubuntu“ und „redhat“ überprüft haben. Wir haben den Befehl chown mit der Option „-R“ ausgegeben, um sowohl den Eigentümer als auch die Gruppe zu ändern. Der Befehl war erfolgreich und der Eigentümer/die Gruppe aller Dateien wurde erfolgreich geändert.
10. Verwenden des Befehls chown für ein symbolisches Link-Verzeichnis
Mal sehen, was passiert, wenn wir den Befehl „chown“ ausgeben, um den Besitzer/die Gruppe von Dateien in einem Verzeichnis, das ein symbolischer Link zu einem anderen Verzeichnis ist, rekursiv zu ändern.
Hier ist ein symbolisches Link-Verzeichnis „linux_symlnk“, das auf das Verzeichnis „linux“ verweist (bereits in Beispiel „9“ oben verwendet):
$ ls -l linux_symlnk lrwxrwxrwx 1 himanshu family 6 2012-05-22 22:02 linux_symlnk -> linux/
Lassen Sie uns nun den Besitzer (von himanshu zu root) dieses symbolischen Linkverzeichnisses rekursiv ändern:
# 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
In der obigen Ausgabe sehen wir, dass der Eigentümer der Dateien und Verzeichnisse nicht geändert wurde. Dies liegt daran, dass der Befehl „chown“ standardmäßig keinen symbolischen Link durchlaufen kann. Dies ist das Standardverhalten, aber dafür gibt es auch ein Flag ‚-P‘.
11. Verwenden von chown, um den Eigentümer/die Gruppe eines Symbolic-Link-Verzeichnisses zwangsweise rekursiv zu ändern
Dies kann mit dem Flag -H
erreicht werden# 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
Wir sehen also, dass durch die Verwendung des Flags -H der Eigentümer/die Gruppe aller Dateien/Ordner geändert wurde.
12. Listet alle Änderungen auf, die durch den Befehl chown vorgenommen wurden
Verwenden Sie die ausführliche Option -v, die anzeigt, ob die Eigentümerschaft der Datei geändert oder beibehalten wurde, wie unten gezeigt.
# 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