Datei-Rechte in Linux ändern und verwalten [Terminal]
Inhaltsverzeichnis:
- Linux-Dateiberechtigungen
chmod
- Symbolische (Text-) Methode
- Numerische Methode
- Verwenden einer Referenzdatei
- Ändern Sie die Berechtigungen der Datei rekursiv
- Arbeiten mit symbolischen Links
- Ändern von Dateiberechtigungen in loser Schüttung
- Fazit
Unter Linux wird der Zugriff auf die Dateien über die Dateiberechtigungen, -attribute und -eigentümer verwaltet. Dadurch wird sichergestellt, dass nur autorisierte Benutzer und Prozesse auf Dateien und Verzeichnisse zugreifen können.
In diesem Lernprogramm wird erläutert, wie Sie mit dem Befehl
chmod
die Zugriffsberechtigungen für Dateien und Verzeichnisse ändern.
Linux-Dateiberechtigungen
Bevor wir fortfahren, wollen wir das grundlegende Linux-Berechtigungsmodell erläutern.
In Linux wird jede Datei einem Eigentümer und einer Gruppe zugeordnet und mit Zugriffsrechten für drei verschiedene Benutzerklassen versehen:
- Der Dateibesitzer. Die Gruppenmitglieder. Andere (alle anderen).
Der Dateibesitz kann mit den Befehlen
chown
und
chgrp
geändert werden.
Es gibt drei Dateiberechtigungstypen, die für jede Klasse gelten:
- Die Leseberechtigung. Die Schreibberechtigung. Die Ausführungsberechtigung.
Mit diesem Konzept können Sie festlegen, welche Benutzer die Datei lesen, in die Datei schreiben oder die Datei ausführen dürfen.
Dateiberechtigungen können mit dem Befehl
ls
angezeigt werden:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type
Das erste Zeichen zeigt den Dateityp. Es kann sich um eine reguläre Datei (
-
), ein Verzeichnis (
d
), eine symbolische Verknüpfung (
l
) oder einen anderen speziellen Dateityp handeln.
Die nächsten neun Zeichen stehen für die Dateiberechtigungen, drei Drillinge mit jeweils drei Zeichen. Das erste Triplet zeigt die Eigentümerberechtigungen, das zweite die Gruppenberechtigungen und das letzte Triplet zeigt alle anderen Berechtigungen. Die Berechtigungen können je nach Dateityp eine unterschiedliche Bedeutung haben.
Im obigen Beispiel bedeutet (
rw-r--r--
), dass der Dateieigentümer über Lese- und Schreibberechtigungen (
rw-
) verfügt, die Gruppe und andere nur über Leseberechtigungen (
r--
).
Jedes der drei Berechtigungs-Triplets kann aus den folgenden Zeichen bestehen und unterschiedliche Auswirkungen haben, je nachdem, ob es sich um eine Datei oder ein Verzeichnis handelt:
Auswirkung von Berechtigungen auf Dateien
Genehmigung | Charakter | Bedeutung in der Datei |
---|---|---|
Lesen |
-
|
Die Datei ist nicht lesbar. Sie können den Dateiinhalt nicht anzeigen. |
r
|
Die Datei ist lesbar. | |
Schreiben |
-
|
Die Datei kann nicht geändert oder modifiziert werden. |
w
|
Die Datei kann geändert oder modifiziert werden. | |
Ausführen |
-
|
Die Datei kann nicht ausgeführt werden. |
x
|
Die Datei kann ausgeführt werden. | |
s
|
Wenn es im
user
Triplet gefunden wird, setzt es das
setuid
Bit. Wenn es im
group
, setzt es das
setgid
Bit. Dies bedeutet auch, dass das
x
Flag gesetzt ist.
Wenn die
|
|
S
|
Wie
s
aber das
x
Flag ist nicht gesetzt. Dieses Flag wird nur selten für Dateien verwendet. |
|
t
|
Wenn es im
others
Triplett gefunden wird, setzt es das
sticky
Bit.
Dies bedeutet auch, dass das
|
|
T
|
Wie
t
aber das
x
Flag ist nicht gesetzt. Dieses Flag ist für Dateien unbrauchbar. |
Auswirkung von Berechtigungen auf Verzeichnisse (Ordner)
In Linux sind Verzeichnisse spezielle Dateitypen, die andere Dateien und Verzeichnisse enthalten.
Genehmigung | Charakter | Bedeutung im Verzeichnis |
---|---|---|
Lesen |
-
|
Der Inhalt des Verzeichnisses kann nicht angezeigt werden. |
r
|
Der Inhalt des Verzeichnisses kann angezeigt werden.
(zB können Sie Dateien innerhalb des Verzeichnisses mit
|
|
Schreiben |
-
|
Der Inhalt des Verzeichnisses kann nicht geändert werden. |
w
|
Der Inhalt des Verzeichnisses kann geändert werden.
(zB Sie können keine neuen Dateien erstellen, Dateien löschen usw.) |
|
Ausführen |
-
|
Das Verzeichnis kann nicht in geändert werden. |
x
|
Das Verzeichnis kann mit
cd
. |
|
s
|
Wenn es im
user
Triplet gefunden wird, setzt es das
setuid
Bit. Wenn es im
group
, setzt es das
setgid
Bit. Dies bedeutet auch, dass das
x
Flag gesetzt ist. Wenn das Flag
setgid
für ein Verzeichnis gesetzt ist, erben die darin erstellten neuen Dateien die Verzeichnisgruppen-ID (GID) anstelle der primären Gruppen-ID des Benutzers, der die Datei erstellt hat.
|
|
S
|
Wie
s
aber das
x
Flag ist nicht gesetzt. Dieses Flag ist für Verzeichnisse unbrauchbar. |
|
t
|
Wenn es im
others
Triplett gefunden wird, setzt es das
sticky
Bit.
Dies bedeutet auch, dass das
|
|
T
|
Wie
t
aber das
x
Flag ist nicht gesetzt. Dieses Flag ist für Verzeichnisse unbrauchbar. |
chmod
Der Befehl
chmod
hat die folgende allgemeine Form:
chmod MODE FILE…
Mit dem Befehl
chmod
können Sie die Berechtigungen für eine Datei entweder in einem symbolischen oder numerischen Modus oder in einer Referenzdatei ändern. Wir werden die Modi später genauer erklären. Der Befehl kann eine oder mehrere durch Leerzeichen getrennte Dateien und / oder Verzeichnisse als Argumente akzeptieren.
Nur root, der Dateieigentümer oder Benutzer mit sudo-Berechtigungen können die Berechtigungen einer Datei ändern. Seien Sie besonders vorsichtig, wenn Sie
chmod
, insbesondere wenn Sie die Berechtigungen rekursiv ändern.
Symbolische (Text-) Methode
Die Syntax des Befehls
chmod
im symbolischen Modus hat folgendes Format:
chmod perms… FILE…
Der erste Satz von Flags (
), Benutzerflags, definiert, für welche Benutzerklassen die Berechtigungen für die Datei geändert werden.
-
u
- Der Dateieigentümer.g
- Die Benutzer, die Mitglieder der Gruppe sind.o
- Alle anderen Benutzer.a
- Alle Benutzer, identisch mitugo
.
Wenn das Benutzerflag weggelassen wird, ist das Standardflag
a
und die von umask festgelegten Berechtigungen sind nicht betroffen.
Der zweite Satz von Flags (
), die Operationsflags, definieren, ob die Berechtigungen entfernt, hinzugefügt oder festgelegt werden sollen:
-
-
Entfernt die angegebenen Berechtigungen.+
Fügt die angegebenen Berechtigungen hinzu.=
Ändert die aktuellen Berechtigungen auf die angegebenen Berechtigungen. Wenn nach dem Symbol=
keine Berechtigungen angegeben sind, werden alle Berechtigungen aus der angegebenen Benutzerklasse entfernt.
Die Berechtigungen (
perms…
) können explizit mit keinem oder einem oder mehreren der folgenden Buchstaben festgelegt werden:
r
,
w
,
x
,
X
,
s
und
t
. Verwenden Sie einen einzelnen Buchstaben aus der Gruppe
u
,
g
und
o
wenn Sie Berechtigungen von einer Benutzerklasse in eine andere Benutzerklasse kopieren.
Wenn Sie Berechtigungen für mehr als eine Benutzerklasse festlegen (
), trennen Sie die symbolischen Modi durch Kommas (ohne Leerzeichen).
Im Folgenden finden Sie einige Beispiele für die Verwendung des Befehls
chmod
im symbolischen Modus:
-
Erteilen Sie den Mitgliedern der Gruppe die Berechtigung, die Datei zu lesen, jedoch nicht zu schreiben und auszuführen:
chmod g=r filename
Entfernen Sie die Ausführungsberechtigung für alle Benutzer:
chmod ax filename
Entfernen Sie abstoßend die Schreibberechtigung für andere Benutzer:
chmod -R ow dirname
Entfernen Sie die Lese-, Schreib- und Ausführungsberechtigung für alle Benutzer mit Ausnahme des Dateieigentümers:
chmod og-rwx filename
Dasselbe kann auch mit dem folgenden Formular erreicht werden:
chmod og= filename
Erteilen Sie dem Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen, Leseberechtigungen für die Dateigruppe und keine Berechtigungen für alle anderen Benutzer:
chmod u=rwx, g=r, o= filename
Fügen Sie die Besitzerberechtigungen der Datei zu den Berechtigungen hinzu, über die die Mitglieder der Dateigruppe verfügen:
chmod g+u filename
Fügen Sie einem bestimmten Verzeichnis ein Sticky-Bit hinzu:
chmod o+t dirname
Numerische Methode
Die Syntax des Befehls
chmod
bei Verwendung einer numerischen Methode hat das folgende Format:
chmod NUMBER FILE…
Im numerischen Modus können Sie die Berechtigungen für alle drei Benutzerklassen (Eigentümer, Gruppe und alle anderen) gleichzeitig festlegen.
Die
NUMBER
kann eine 3- oder 4-stellige Zahl sein.
Wenn die 3-stellige Nummer verwendet wird, repräsentiert die erste Ziffer die Berechtigungen des Dateieigentümers, die zweite der Dateigruppe und die letzte aller anderen Benutzer.
Alle Schreib-, Lese- und Ausführungsberechtigungen haben den folgenden Zahlenwert:
-
r
(lesen) = 4w
(schreiben) = 2x
(ausführen) = 1 keine Berechtigungen = 0
Die Berechtigungsnummer einer bestimmten Benutzerklasse wird durch die Summe der Werte der Berechtigungen für diese Gruppe dargestellt.
Um die Berechtigungen der Datei im numerischen Modus herauszufinden, berechnen Sie einfach die Gesamtsummen für alle Benutzerklassen. Wenn Sie beispielsweise dem Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen erteilen möchten, Lese- und Ausführungsberechtigungen für die Dateigruppe und nur für alle anderen Benutzer, gehen Sie folgendermaßen vor:
- Besitzer: rwx = 4 + 2 + 1 = 7Gruppe: rx = 4 + 0 + 1 = 5Sonstige: rx = 4 + 0 + 0 = 4
Mit der obigen Methode kommen wir zu der Nummer
754
, die die gewünschten Berechtigungen darstellt.
Verwenden Sie zum Einrichten der
setuid
,
setgid
und
sticky bit
Flags eine vierstellige Zahl.
Wenn die 4-stellige Nummer verwendet wird, hat die erste Ziffer die folgende Bedeutung:
- setuid = 4setgid = 2sticky = 1no changes = 0
Die nächsten drei Ziffern haben die gleiche Bedeutung wie bei Verwendung einer dreistelligen Nummer.
Wenn die erste Ziffer 0 ist, kann sie weggelassen werden und der Modus kann mit 3 Ziffern dargestellt werden. Der numerische Modus
0755
ist der gleiche wie
755
.
Um den numerischen Modus zu berechnen, können Sie auch eine andere Methode (binäre Methode) verwenden, die jedoch etwas komplizierter ist. Für die meisten Benutzer ist es ausreichend zu wissen, wie der numerische Modus mit 4, 2 und 1 berechnet wird.
Sie können die Berechtigungen der Datei in der numerischen Notation mit dem Befehl
stat
überprüfen:
stat -c "%a" filename
644
Im Folgenden finden Sie einige Beispiele für die Verwendung des Befehls
chmod
im numerischen Modus:
-
Erteilen Sie dem Eigentümer der Datei Lese- und Schreibrechte und nur den Gruppenmitgliedern und allen anderen Benutzern:
chmod 644 dirname
Erteilen Sie dem Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen, Lese- und Ausführungsberechtigungen für Gruppenmitglieder und keine Berechtigungen für alle anderen Benutzer:
chmod 750 dirname
Vergeben Sie Lese-, Schreib- und Ausführungsberechtigungen und ein Sticky-Bit für ein bestimmtes Verzeichnis:
chmod 1777 dirname
Legen Sie rekursiv Lese-, Schreib- und Ausführungsberechtigungen für den Dateieigentümer und keine Berechtigungen für alle anderen Benutzer in einem bestimmten Verzeichnis fest:
chmod -R 700 dirname
Verwenden einer Referenzdatei
Mit der Option
--reference=ref_file
können Sie festlegen, dass die Berechtigungen der Datei mit denen der angegebenen Referenzdatei (
ref_file
)
ref_file
.
chmod --reference=REF_FILE FILE
Mit dem folgenden Befehl werden beispielsweise die Berechtigungen von
file1
zu
file2
file1
Ändern Sie die Berechtigungen der Datei rekursiv
Verwenden Sie die Option
-R
(
--recursive
), um alle Dateien und Verzeichnisse im angegebenen Verzeichnis rekursiv zu
--recursive
:
chmod -R MODE DIRECTORY
Um beispielsweise die Berechtigungen aller Dateien und Unterverzeichnisse im Verzeichnis
/var/www
auf
755
zu ändern, verwenden Sie Folgendes:
Arbeiten mit symbolischen Links
Symbolische Links haben immer
777
Berechtigungen.
Wenn Sie die Berechtigungen von symlink ändern, ändert
chmod
standardmäßig die Berechtigungen für die Datei, auf die der Link verweist.
chmod 755 symlink
Anstatt den Eigentümer des Ziels zu ändern, wird möglicherweise der Fehler "Kein Zugriff auf Symlink: Berechtigung verweigert" angezeigt.
Der Fehler tritt auf, weil Symlinks auf den meisten Linux-Distributionen standardmäßig geschützt sind und Sie keine Zieldateien bearbeiten können. Diese Option wird in
/proc/sys/fs/protected_symlinks
.
1
bedeutet aktiviert und
0
deaktiviert. Es wird empfohlen, den Symlink-Schutz nicht zu deaktivieren.
Ändern von Dateiberechtigungen in loser Schüttung
Manchmal gibt es Situationen, in denen Sie die Berechtigungen für Dateien und Verzeichnisse in großen Mengen ändern müssen.
Das häufigste Szenario besteht darin, die Berechtigungen der Website-Datei rekursiv in
644
und die Verzeichnisberechtigungen in
755
zu ändern.
Mit der numerischen Methode:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
Mit der symbolischen Methode:
find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ;
find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;
Der Befehl
find
sucht nach Dateien und Verzeichnissen unter
/var/www/my_website
und
/var/www/my_website
alle gefundenen Dateien und Verzeichnisse an den Befehl
chmod
, um die Berechtigungen
/var/www/my_website
.
Fazit
Der Befehl
chmod
ändert die Berechtigungen der Datei. Die Berechtigungen können entweder im symbolischen oder im numerischen Modus festgelegt werden.
Um mehr über
chmod
zu erfahren, besuchen Sie die chmod-Manpage.
Zurücksetzen von NTFS-Dateiberechtigungen in Windows 10/8/7
Zurücksetzen von NTFS-Dateiberechtigungen ist eine Freeware, mit der Sie ganz einfach zugreifen können Wiederherstellen oder Zurücksetzen von Datei- und Sicherheitsberechtigungen in Windows 10/8/7, ohne Verwendung der Befehlszeile.
So ändern Sie die Dateiberechtigungen unter Linux rekursiv
Linux ist ein Mehrbenutzersystem, und der Zugriff auf die Dateien wird über die Dateiberechtigungen, Attribute und Eigentumsrechte gesteuert. In diesem Artikel wird erläutert, wie Sie die Berechtigungen von Dateien und Verzeichnissen rekursiv ändern.
Befehl Chgrp unter Linux (Gruppe wechseln)
In Linux ist jede Datei einem Eigentümer und einer Gruppe zugeordnet und verfügt über Berechtigungen, die festlegen, welche Benutzer die Datei lesen, schreiben oder ausführen dürfen. Der Befehl chgrpc ändert die Gruppeneigentümerschaft für bestimmte Dateien.