Dateisysteme verwenden Berechtigungen und Attribute, um die Interaktionsebene zu regeln, die Systemprozesse mit Dateien und Verzeichnissen haben können.

Warnung: Bei Verwendung zu Sicherheitszwecken schützen Berechtigungen und Attribute nur vor Angriffen, die vom gebooteten System aus gestartet werden. Um die gespeicherten Daten vor Angreifern mit physischem Zugriff auf die Maschine zu schützen, muss auch eine Data-at-Rest-Verschlüsselung implementiert werden.,

Anzeigen von Berechtigungen

Verwenden Sie die Option -l des Befehls ls, um die für den Inhalt eines Verzeichnisses festgelegten Berechtigungen (oder Dateimodus) anzuzeigen, z. B.:

$ ls-l /path/to/directory

Die erste Spalte ist das, worauf wir uns konzentrieren müssen., Taking an example value of drwxrwxrwx+, the meaning of each character is explained in the following tables:

Jede der drei Berechtigungs-Triaden (rwx im obigen Beispiel) kann aus folgenden Zeichen bestehen:

d rwx rwx rwx +
The file type, technically not part of its permissions. See info ls -n "What information is listed" for an explanation of the possible values., Die Berechtigungen, die der Eigentümer über die Datei hat, werden unten erläutert. Die Berechtigungen, die die Gruppe über die Datei hat, werden unten erläutert. Die Berechtigungen, die alle anderen Benutzer über die Datei haben, werden unten erläutert. Ein einzelnes Zeichen, das angibt, ob eine alternative Zugriffsmethode für die Datei gilt. Wenn dieses Zeichen ein Leerzeichen ist, gibt es keine alternative Zugriffsmethode. . Zeichen weist auf eine Datei mit der Sicherheitskontext, aber keine Alternative access method., Eine Datei mit einer beliebigen anderen Kombination alternativer Zugriffsmethoden ist mit einem + Zeichen gekennzeichnet, beispielsweise bei Zugriffskontrolllisten.,
Character Effect on files Effect on directories
Read permission (first character) - Die Datei kann nicht gelesen werden., Der Inhalt des Verzeichnisses kann nicht angezeigt werden.
r Die Datei gelesen werden kann. Der Inhalt des Verzeichnisses kann angezeigt werden.
Schreibberechtigung (zweites Zeichen) - Die Datei kann nicht geändert werden. Der Inhalt des Verzeichnisses kann nicht geändert werden.
w Die Datei kann geändert werden., Der Inhalt des Verzeichnisses kann geändert werden (neue Dateien oder Ordner erstellen; vorhandene Dateien oder Ordner umbenennen oder löschen); Erfordert, dass auch die Ausführungsberechtigung festgelegt wird, andernfalls hat diese Berechtigung keine Auswirkung.
Execute-Berechtigung (drittes Zeichen) - Die Datei nicht ausgeführt werden kann. Auf das Verzeichnis kann nicht mit cd zugegriffen werden.
x Die Datei ausgeführt werden kann., Auf das Verzeichnis kann mit cd zugegriffen werden; Dies ist das einzige Berechtigungsbit, das in der Praxis als „vererbt“ von den Vorfahren-Verzeichnissen angesehen werden kann, wenn ein Ordner im Pfad nicht die x – Bitmenge hat, kann auch nicht auf die endgültige Datei oder den endgültigen Ordner zugegriffen werden, unabhängig von ihren Berechtigungen; siehe path_resolution(7) für weitere Informationen.,
s Das setuid-bit -, wenn Sie in die Anwender-Dreiklang; die setgid-bit -, wenn Sie in der Gruppe Triade; es ist nicht gefunden in die andere Triade; es bedeutet auch, dass die x eingestellt ist.
S Wie s, aber x ist nicht gesetzt; selten in regulären Dateien und nutzlos in Ordnern.,
t The sticky bit; it can only be found in the others triad; it also implies that x is set.
T Same as t, but x is not set; rare on regular files, and useless on folders.

See info Coreutils -n "Mode Structure" and chmod(1) for more details.,

Tipp: Sie können Berechtigungen entlang eines Pfads mit namei -l pathanzeigen.

Beispiele

Lassen Sie uns einige Beispiele zur Verdeutlichung sehen:

drwx------ 6 archie users 4096 Jul 5 17:37 Documents

Archie hat vollen Zugriff auf das Dokumentenverzeichnis. Er kann Dateien auflisten, erstellen und umbenennen, jede Datei in Dokumenten löschen, unabhängig von den Dateiberechtigungen. Seine Fähigkeit, auf eine Datei zuzugreifen, hängt von der Berechtigung der Datei ab.

dr-x------ 6 archie users 4096 Jul 5 17:37 Documents

Archie hat vollen Zugriff, außer er kann keine Datei erstellen, umbenennen, löschen., Er kann die Dateien auflisten und (wenn die Berechtigung der Datei dies erlaubt) auf eine vorhandene Datei in Dokumenten zugreifen.

d-wx------ 6 archie users 4096 Jul 5 17:37 Documents

Archie kann ‚ls‘ in Dokumenten nicht ausführen, aber wenn er den Namen einer vorhandenen Datei kennt, kann er sie auflisten, umbenennen, löschen oder (wenn die Berechtigung der Datei es ihm ermöglicht) darauf zugreifen. Außerdem kann er neue Dateien erstellen.

d--x------ 6 archie users 4096 Jul 5 17:37 Documents

Archie ist nur in der Lage (wenn die Berechtigung der Datei es ihm ermöglicht) auf die Dateien in Dokumenten zuzugreifen, die er kennt. Er kann bereits vorhandene Dateien nicht auflisten oder erstellen, umbenennen, löschen.,

Sie sollten bedenken, dass wir auf Verzeichnisberechtigungen eingehen und dies nichts mit den einzelnen Dateiberechtigungen zu tun hat. Wenn Sie eine neue Datei erstellen, ändert sich das Verzeichnis. Deshalb benötigen Sie eine Schreibberechtigung für das Verzeichnis.

Schauen wir uns ein anderes Beispiel an, diesmal eine Datei, kein Verzeichnis:

-rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

Hier können wir sehen, dass der erste Buchstabe nicht d, sondern -ist. Wir wissen also, dass es eine Datei ist, kein Verzeichnis., Als nächstes sind die Berechtigungen des Besitzers rw-, sodass der Besitzer lesen und schreiben kann, aber nicht ausführen kann. Dies mag seltsam erscheinen, dass der Besitzer nicht über alle drei Berechtigungen verfügt, aber die Berechtigung x wird nicht benötigt, da es sich um eine Text – /Datendatei handelt, die von einem Texteditor wie Gedit, EMACS oder Software wie R gelesen werden kann und keine eigene ausführbare Datei (wenn sie etwas wie Python-Programmiercode enthält, könnte dies sehr gut der Fall sein)., Die Berechtigungen der Gruppe sind auf r--, sodass die Gruppe die Datei lesen, aber nicht schreiben/bearbeiten kann — es ist im Wesentlichen so, als würde sie etwas schreibgeschützt festlegen. Wir können sehen, dass die gleichen Berechtigungen auch für alle anderen gelten.

Berechtigungen ändern

chmod ist ein Befehl in Linux und anderen Unix-ähnlichen Betriebssystemen, mit dem die Berechtigungen (oder der Zugriffsmodus) einer Datei oder eines Verzeichnisses geändert werden können.

Textmethode

Um die Berechtigungen oder den Zugriffsmodus einer Datei zu ändern, verwenden Sie den Befehl chmod in einem Terminal., Nachfolgend finden Sie die allgemeine Struktur des Befehls:

chmod who=permissions filename

Wobei who aus einem Buchstabenbereich stammt, der jeweils angibt, wer die Berechtigung erhält. Sie sind wie folgt:

  • u: der Benutzer, der die Datei besitzt.
  • g: die Benutzergruppe, zu der die Datei gehört.
  • o: die anderen Benutzer, d.h. alle anderen.
  • a: alle der oben genannten ist; verwenden Sie diese anstelle der Eingabe von ugo.,

Die Berechtigungen sind die gleichen wie in #Anzeigen Berechtigungen diskutiert (r, w und x).

Schauen Sie sich nun einige Beispiele mit diesem Befehl an., Angenommen, Sie haben das Dokumentenverzeichnis sehr beschützt und wollten allen außer sich selbst die Berechtigungen zum Lesen, Schreiben und Ausführen (oder in diesem Fall Suchen/Suchen) verweigern:

Vorher: drwxr-xr-x 6 archie users 4096 Jul 5 17:37 Documents

$ chmod g= Documents$ chmod o= Documents

Nach: drwx------ 6 archie users 4096 Jul 6 17:32 Documents

Hier, weil Sie Berechtigungen verweigern möchten, tun Sie dies nicht setzen Sie alle Buchstaben nach der = wo Berechtigungen eingegeben werden würden. Jetzt können Sie sehen, dass nur die Berechtigungen des Besitzers rwx und alle anderen Berechtigungen -.,

Dies kann zurückgesetzt werden mit:

Vorher: drwx------ 6 archie users 4096 Jul 6 17:32 Documents

$ chmod g=rx Documents$ chmod o=rx Documents

Danach: drwxr-xr-x 6 archie users 4096 Jul 6 17:32 Documents

Im nächsten Beispiel möchten Sie der Gruppe und anderen Benutzern Lese-und Ausführungsberechtigungen erteilen, sodass Sie die Buchstaben für die Berechtigungen eingeben (r und x) nach der =, ohne Leerzeichen.

Sie können dies vereinfachen, indem Sie mehr als einenwho – Buchstaben in denselben Befehl einfügen, e.,g:

$ chmod go=rx Documents
Hinweis: Es spielt keine Rolle, in welcher Reihenfolge Sie die who – Buchstaben oder die Berechtigungsbuchstaben in einen chmod – Befehl einfügen: Sie könnten chmod go=rx file oder chmod og=xr filehaben. Es ist alles gleich.,ich habe ein zweites Beispiel, angenommen, Sie möchten eine foobar – Datei so ändern, dass Sie Lese-und Schreibberechtigungen haben, und andere Benutzer in der Gruppe users, die möglicherweise Kollegen sind, die an foobar arbeiten, können auch lesen und schreiben, aber andere Benutzer können es nur lesen:

Vorher: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod g=rw foobar

Nach: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Dies ist genau wie das erste Beispiel, aber mit einer Datei, kein Verzeichnis, und Sie erteilen Schreibberechtigung (nur um ein Beispiel für die Erteilung jeder Berechtigung zu geben).,

Text method shortcuts

Mit dem Befehl chmod können Berechtigungen aus einem vorhandenen Satz mit + oder - anstelle von =hinzugefügt und subtrahiert werden. Dies unterscheidet sich von den obigen Befehlen, die im Wesentlichen die Berechtigungen neu schreiben (z. B. um eine Berechtigung von r-- in rw- zu ändern, müssen Sie weiterhin r sowie w nach dem = in den Befehl chmod aufruf., Wenn Sie r verpasst haben, würde dies die Berechtigung r entfernen, da sie mit der =neu geschrieben werden. Die Verwendung von + und - vermeidet dies, indem der aktuelle Berechtigungssatz hinzugefügt oder entfernt wird).,> Vorher: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod a-w foobar

Nachher: -r--r--r-- 1 archie users 5120 Jun 27 08:28 foobar

Eine andere Verknüpfung ist die spezielle X Modus: Dies ist kein tatsächlicher Dateimodus, wird jedoch häufig in Verbindung mit der -R Option, um das ausführbare Bit nur für Verzeichnisse festzulegen und für reguläre Dateien unverändert zu lassen, z. B.:

$ chmod -R a+rX ./data/

Kopieren von Berechtigungen

Es ist möglich, chmod anzuweisen, die Berechtigungen von einer Klasse, z. B. dem Eigentümer, zu kopieren und dieselben Berechtigungen für Gruppen oder sogar alle zu erteilen., Anstatt r, w oder x Setzen Sie dazu nach = einen weiteren who-Buchstaben. zB:

Vorher: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod g=u foobar

Nachher: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Dieser Befehl bedeutet im Wesentlichen „Ändern Sie die Berechtigungen der Gruppe (g=), um mit dem besitzenden Benutzer identisch zu sein (=u). Beachten Sie, dass Sie nicht eine Reihe von Berechtigungen kopieren und neue erteilen können, z,:

$ chmod g=wu foobar

In diesem Fall wirft chmod einen Fehler aus.

Numerische Methode

chmod kann auch Berechtigungen mit Zahlen festlegen.

Die Verwendung von Zahlen ist eine weitere Methode, mit der Sie die Berechtigungen für alle drei Eigentümer, Gruppen und anderen gleichzeitig sowie die Bits setuid, setgid und sticky bearbeiten können. Diese grundlegende Struktur des Codes ist folgende:

$ chmod xxx filename

Wobei xxx eine 3-stellige Zahl ist, bei der jede Ziffer zwischen 0 und 7 liegen kann., Die erste Ziffer gilt für Berechtigungen für den Eigentümer, die zweite Ziffer gilt für Berechtigungen für die Gruppe und die dritte Ziffer gilt für Berechtigungen für alle anderen.

In dieser Nummernschreibweise haben die Werte r, w und x ihren eigenen Nummernwert:

Um eine 3-stellige Nummer zu erhalten, müssen Sie überlegen, welche Berechtigungen Eigentümer, Gruppe und alle anderen haben sollen, und dann müssen Sie insgesamt ihre Werte nach oben., sie möchten, dass group und alle anderen nur Lese-und Ausführungsberechtigungen haben, Sie würden die numerischen Werte wie folgt finden:

  • Owner: rwx=4+2+1=7
  • Gruppe: r-x=4+0+1=5
  • Sonstiges: r-x=4+0+1=5
$ chmod 755 filename

Dies entspricht der Verwendung der folgenden:

$ chmod u=rwx filename$ chmod go=rx filename

Um die vorhandenen Berechtigungen einer Datei oder eines Verzeichnisses in numerischer Form anzuzeigen, verwenden Sie den Befehl stat(1):

$ stat -c %a filename

Wobei die Option %a die Ausgabe in numerischer Form angibt.,

Die meisten Ordner und Verzeichnisse sind auf 755 gesetzt, um dem Eigentümer das Lesen, Schreiben und Ausführen zu ermöglichen, aber das Schreiben an alle anderen zu verweigern, und Dateien sind normalerweise 644 um das Lesen und Schreiben für den Eigentümer zu ermöglichen, aber nur für alle anderen zu lesen; siehe den letzten Hinweis zum Fehlen von x Berechtigungen mit nicht ausführbaren Dateien: Es ist hier dasselbe.,

Um dies in Aktion mit Beispielen zu sehen, betrachten Sie das vorherige Beispiel, das verwendet wurde, aber stattdessen mit dieser numerischen Methode angewendet wurde:

Vorher: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod 664 foobar

Danach: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Wenn dies eine ausführbare Datei wäre, wäre die Nummer 774 wenn Sie dem Eigentümer und der Gruppe ausführbare Berechtigungen erteilen möchten. Wenn Sie möchten, dass jeder nur Leseberechtigung hat, lautet die Nummer alternativ 444., Die Behandlung von r als 4, w als 2 und x als 1 ist wahrscheinlich der einfachste Weg, um die numerischen Werte für die Verwendung von chmod xxx filename, aber es gibt auch eine binäre Methode, bei der jede Berechtigung eine binäre Zahl hat und diese dann wiederum in eine Zahl konvertiert wird. Es ist ein bisschen verworrener, aber hier der Vollständigkeit halber enthalten.,

Betrachten Sie diesen Berechtigungssatz:

-rwxr-xr--

Wenn Sie unter jede erteilte Berechtigung eine 1 und für jede nicht erteilte eine 0 setzen, wäre das Ergebnis ungefähr so:

-rwxrwxr-x 111111101

Sie können dann diese Binärzahlen konvertieren:

000=0 100=4001=1 101=5010=2 110=6011=3 111=7

Der Wert des obigen würde daher sei 775.

Wenn wir die beschreibbare Berechtigung aus der Gruppe entfernen möchten:

-rwxr-xr-x 111101101

Der Wert wäre daher 755 und Sie würden chmod 755 filename verwenden, um die beschreibbare Berechtigung zu entfernen., Sie werden feststellen, dass Sie dieselbe dreistellige Nummer erhalten, unabhängig davon, welche Methode Sie verwenden. Ob Sie Text oder Zahlen verwenden, hängt von den persönlichen Vorlieben und der Schreibgeschwindigkeit ab. Wenn Sie ein Verzeichnis oder eine Datei auf Standardberechtigungen wiederherstellen möchten, z. B. Lese-und Schreib – (und Ausführungsberechtigungen) für den Eigentümer, aber allen anderen die Schreibberechtigung verweigern möchten, ist es möglicherweise schneller, chmod 755/644 filename. Wenn Sie jedoch die Berechtigungen in etwas außerhalb der Norm ändern, ist es möglicherweise einfacher und schneller, die Textmethode zu verwenden, als zu versuchen, sie in Zahlen zu konvertieren, was zu einem Fehler führen kann., Es könnte argumentiert werden, dass es für einen Benutzer, der chmod nur gelegentlich verwenden muss, keinen wirklich signifikanten Unterschied in der Geschwindigkeit beider Methoden gibt.

Mit der numerischen Methode können Sie auch die Bits setuid, setgid und sticky mit vier Ziffern festlegen.

setuid=4setgid=2sticky=1

Zum Beispiel setzt chmod 2777 filename Lese – /Schreib – /ausführbare Bits für alle und aktiviert auch das setgid Bit.

Bulk chmod

Im Allgemeinen sollten Verzeichnisse und Dateien nicht die gleichen Berechtigungen haben., Wenn es notwendig ist, einen Verzeichnisbaum in großen Mengen zu ändern, verwenden Sie find, um den einen oder anderen selektiv zu ändern.

Zu chmod nur Verzeichnisse zu 755:

$ find directory -type d -exec chmod 755 {} +

Zu chmod nur Dateien zu 644:

$ find directory -type f -exec chmod 644 {} +

Besitzwechsel

chown ändert den Besitzer einer Datei oder eines Verzeichnisses, was in einigen Fällen schneller und einfacher ist, als die Berechtigungen zu ändern.

Betrachten Sie das folgende Beispiel, das Erstellen einer neuen Partition mit GParted für Sicherungsdaten. Gparted macht das alles als root, also gehört standardmäßig alles zu root., Das ist alles gut und gut, aber wenn es darum geht, Daten auf die gemountete Partition zu schreiben, wird die Berechtigung für normale Benutzer verweigert.

brw-rw---- 1 root disk 8, 9 Jul 6 16:02 sda9drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup

Wie Sie sehen können, ist das Gerät in /dev im Besitz von root, ebenso wie der Mount-Speicherort (/media/Backup)., Um den Besitzer des Mount-Standorts zu ändern, kann man Folgendes tun:

Vorher: drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup

# chown archie /media/Backup

Danach: drwxr-xr-x 5 archie root 4096 Jul 6 16:01 Backup

Jetzt kann die Partition Daten haben, die vom neuen Besitzer archie darauf geschrieben wurden, ohne die Berechtigungen zu ändern (da die Eigentümertriade bereits rwx Berechtigungen).

Hinweis:

  • chown löscht immer die setuid und setgid Bits.
  • Nicht-Root-Benutzer können chown nicht verwenden, um Dateien, die sie besitzen, an einen anderen Benutzer zu „verschenken“.,

Zugriffskontrolllisten

Zugriffskontrolllisten bieten einen zusätzlichen, flexibleren Berechtigungsmechanismus für Dateisysteme, indem Berechtigungen für jeden Benutzer oder jede Gruppe für jede Datei festgelegt werden können.

Umask

Mit dem Dienstprogramm umask wird die Maske für den Dateierstellungsmodus gesteuert, die den Anfangswert der Dateiberechtigungsbits für neu erstellte Dateien bestimmt.,

Dateiattribute

Abgesehen von den Dateimodusbits, die Lese -, Schreib-und Ausführungsberechtigungen für Benutzer und Gruppen steuern, unterstützen mehrere Dateisysteme Dateiattribute, die eine weitere Anpassung zulässiger Dateivorgänge ermöglichen. Dieser Abschnitt beschreibt einige dieser Attribute und wie Sie mit ihnen arbeiten.

Warnung: Standardmäßig werden Dateiattribute von cp, rsync und anderen ähnlichen Programmen nicht beibehalten.,

chattr und lsattr

Für ext2-und ext3-Dateisysteme enthält das e2fsprogs-Paket die Programme lsattr und chattr, die die Attribute einer Datei auflisten bzw. ändern.,/li>

  • u: undeletable
  • A: keine atime updates
  • C: keine kopie auf schreiben
  • D: synchron verzeichnis updates
  • S: synchrone Updates
  • T: oben in der Verzeichnishierarchie
  • Wenn Sie beispielsweise das unveränderliche Bit in einer Datei festlegen möchten, verwenden Sie den folgenden Befehl:

    # chattr +i /path/to/file

    Um ein Attribut in einer Datei zu entfernen, ändern Sie einfach + zu -.,

    Erweiterte Attribute

    Aus xattr (7):“Erweiterte Attribute sind Name: Wertepaare, die Dateien und Verzeichnissen dauerhaft zugeordnet sind“. Es gibt vier erweiterte Attributklassen: Sicherheit, System, vertrauenswürdig und Benutzer.

    Warnung: Erweiterte Attribute werden standardmäßig von cp, rsync und anderen ähnlichen Programmen nicht beibehalten, siehe # Erweiterte Attribute beibehalten.

    Erweiterte Attribute werden auch zum Festlegen von Funktionen verwendet.

    Benutzer erweiterte Attribute

    Benutzer erweiterte Attribute können verwendet werden, um beliebige Informationen über eine Datei zu speichern., To create one:

    $ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt

    Use getfattr to display extended attributes:

    $ getfattr -d foo.txt
    # file: foo.txtuser.,3de557528">
    --preserve=mode,ownership,timestamps,xattr mv preserves by default1 tar --xattrs for creation and extraction bsdtar -p for extraction rsync --xattrs
    1. mv silently discards extended attributes when the target file system does not support them.,

    Um erweiterte Attribute mit Texteditoren beizubehalten, müssen Sie diese so konfigurieren, dass Dateien beim Speichern abgeschnitten werden, anstatt umbenennen zu verwenden (2).

    Tipps und Tricks

    Wurzel beibehalten

    Verwenden Sie das Flag --preserve-root, um zu verhindern, dass chmod rekursiv auf /einwirkt. Dies kann beispielsweise verhindern, dass man das ausführbare Bit systemweit entfernt und damit das System bricht. Um dieses Flag jedes Mal zu verwenden, setzen Sie es innerhalb eines Alias. Siehe auch .,

    Siehe auch

    • wikipedia:Chattr
    • Linux-Datei-Berechtigung Verwirrung
    • Linux-Datei-Berechtigung Verwirrung, Teil 2
    • wikipedia:Extended file Attribute#Linux
    • Erweiterte Attribute: die guten, die nicht so guten, die schlechten.
    • Sichern und Wiederherstellen von Dateiberechtigungen unter Linux
    • Warum ist" chmod-R 777 / " destruktiv?

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.