
In Linux- und Unix-ähnlichen Betriebssystemen gehören alle Dateien, Verzeichnisse und Prozesse (die wiederum Dateien sind) den Benutzern. Die Gruppe ist eine Gruppe von Benutzern, die dieselben Zugriffsberechtigungen (d. h. Lesen, Schreiben und Ausführen) für diese Objekte (Dateien/Verzeichnisse) teilen.
Der Befehl chown wird unter Linux verwendet, um den Benutzer- und Gruppenbesitz von Dateien, Verzeichnissen und symbolischen Links zu ändern.
In diesem Tutorial zeige ich Ihnen anhand einiger praktischer Beispiele, wie Sie den Befehl chown verwenden.
Chown-Syntax
Lassen Sie uns die grundlegende Syntax des Befehls chown wie folgt überprüfen:
chown [OPTIONS] USER[:GROUP] FILE/DIRECTORY
Sie können ls -l
ausführen Befehl zum Drucken von Dateibesitzdetails.
In der folgenden Ausgabe sehen Sie, dass die Datei „myfile.txt“ dem Benutzer „tom“ gehört und die Gruppe „developers“ gehört:
$ ls -l
-rw-r--r-- 1 tom developers 0 Apr 4 01:35 myfile.txt
Eigentümer einer Datei ändern
Um den Eigentümer einer Datei zu ändern, verwenden Sie chown mit neuem Eigentümernamen und dem Dateinamen, für den der Eigentümer geändert werden muss.
Der folgende Befehl ändert den Besitz der Datei mit dem Namen „myfile.txt“ auf einen neuen Benutzer „tom“:
# chown tom myfile.txt
Wenn der Befehl erfolgreich ausgeführt wurde, wird keine Ausgabe auf dem Terminal angezeigt. Lassen Sie dies mit ls -l
überprüfen Befehl wie folgt:
# ls -l myfile.txt
-rw-r--r-- 1 tom root 623 Dec 10 2012 myfile.txt
Eigentümer und Gruppe einer Datei ändern
Wenn dem Besitzer ein Doppelpunkt folgt (:
) und einem Gruppennamen (ohne Leerzeichen), wird auch der Gruppenname geändert.
Das folgende Beispiel zeigt, wie Sie den Eigentümer und die Gruppe für die Datei „myfile.txt“ ändern:
# chown tom:developers myfile.txt
Jetzt ist der neue Besitzer der Datei „tom“ und der neue Gruppenbesitzer ist die Gruppe „developers“.
# ls -l myfile.txt
-rw-r--r-- 1 tom developers 424 Dec 10 2012 myfile.txt
Wenn Sie den Gruppennamen nach dem Doppelpunkt entfernen, wird die Gruppe der Datei in die Anmeldegruppe des angegebenen Benutzers geändert:
# chown tom: myfile.txt
# ls -l myfile.txt
-rw-r--r-- 1 tom tom 453 Dec 10 2012 myfile.txt
Wenn der Doppelpunkt (:) und die Gruppe erwähnt werden, wird nur die Gruppe der Datei geändert. In diesem Fall funktioniert der Befehl wie der Befehl chgrp.
# chown :developers myfile.txt
# ls -l myfile.txt
-rw-r--r-- 1 tom developers 1579 Dec 10 2012 myfile.txt
Inhaberschaft für Verzeichnisse rekursiv ändern
Um den Besitz rekursiv auf alle Dateien und Verzeichnisse in einem bestimmten Verzeichnis anzuwenden, verwenden Sie -R
Möglichkeit
Im folgenden Beispiel wird der Besitz aller Dateien und Verzeichnisse unter „/var/www/html“ rekursiv auf „linoxide“ und der Gruppenbesitz auf „www-data“ geändert:
# chown linoxide:www-data -R /var/www/html
Ausführliche Ausgabe
Der --verbose
Option zeigt alle Eigentumsänderungen auf dem Terminal. Es gibt die Diagnose für jede verarbeitete Datei aus.
Zum Beispiel:
# chown -R --verbose jones /home/jones/
changed ownership of `/home/jones/hello' to jones
changed ownership of `/home/jones/.emacs' to jones
changed ownership of `/home/jones/.bash_history' to jones
changed ownership of `/home/jones/.bash_logout' to jones
changed ownership of `/home/jones/.bashrc' to jones
changed ownership of `/home/jones/file1' to jones
Die ausführliche Option gibt die Verarbeitung jeder Datei aus, auch wenn keine Änderungen vorgenommen wurden. Aber mit -c
oder --changes
Option wird die Ausgabe nur gemeldet, wenn Änderungen vorgenommen werden.
Inhaberschaft für symbolische Links ändern
Standardmäßig chown
Der Befehl ändert nicht den Besitz von symbolischen Links, sondern ändert den Besitz der Zieldatei. Chmod hat eine Option -h
die verwendet werden kann, um den Besitz für symbolische Links zu ändern.
Überprüfen Sie das folgende Beispiel:
# chown -h tom vmlinuz
# ls -l
total 0
lrwxrwxrwx 1 tom root 31 Apr 5 00:50 vmlinuz -> /boot/vmlinuz-4.15.0-88-generic
Inhaberschaft wie Referenzdatei ändern
Sie können auf eine Datei verweisen, aus der chown
denselben Benutzer- und Gruppenbesitz in eine neue Datei kopieren.
Im folgenden Befehl --reference=myfile1.txt
Option zur Angabe der Referenzdatei und des Eigentumsrechts, das der Datei mit dem Namen „myfile2.txt“ zugewiesen ist:
# chown --reference=myfile1.txt myfile2.txt
Leiser Betrieb
Ein normaler Benutzer kann den Besitz von Dateien, die anderen gehören, nicht ändern. Daher wird ein Fehler angezeigt, wenn ein normaler Benutzer versucht, den Besitz zu ändern.
[tom@node051 ~]$ chown tom /etc/
chown: changing ownership of `/etc/': Operation not permitted
Aber wenn wir -f
verwenden oder --silent
oder --quiet
Option wird der Fehler nicht angezeigt.
[tom@node051 ~]$ chown -f tom /etc/
[tom@node051 ~]$
Wie man die Wurzel bewahrt
Der Chmod-Befehl hat eine Option --preserve-root
um zu verhindern, dass chmod rekursiv auf /
wirkt . Diese Option sollte mit -R
verwendet werden Option wirksam werden.
[root@node051 ~]# chown -c --preserve-root tom /
changed ownership of '/' from root to tom
Nur die Berechtigungen der /
geändert werden und der Besitz von Dateien und Verzeichnissen in /
bleibt gleich.
[root@node051 ~]# ls -ld /
drwxr-xr-x 23 tom root 4096 Feb 19 14:36 /
[root@node051 ~]# ls -l
total 88
drwxr-xr-x 2 root root 4096 Feb 19 14:33 bin
drwxr-xr-x 3 root root 4096 Feb 19 14:36 boot
drwxr-xr-x 16 root root 3660 Mar 28 11:09 dev
drwxr-xr-x 90 root root 4096 Apr 4 02:28 etc
drwxr-xr-x 2 root root 4096 Feb 19 14:35 home
lrwxrwxrwx 1 root root 33 Feb 19 14:35 initrd.img -> boot/initrd.img-4.15.0-88-generic
lrwxrwxrwx 1 root root 33 Feb 19 14:29 initrd.img.old -> boot/initrd.img-4.15.0-76-generic
drwxr-xr-x 22 root root 4096 Feb 19 14:37 lib
drwxr-xr-x 2 root root 4096 Feb 19 14:28 lib64
drwx------ 2 root root 16384 Feb 19 14:27 lost+found
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie man den Besitz von Dateien und Verzeichnissen in Linux ändert. Danke fürs Lesen und teilen Sie uns Ihre Kommentare mit.