Können Sie die wichtigsten Konzepte und Befehlszeilentools zum Verwalten von Dateiberechtigungen kurz erläutern?
Können Sie die wichtigsten Konzepte und Befehlszeilentools zum Verwalten von Dateiberechtigungen kurz erläutern?
Antworten:
Jede Datei hat Rechte für drei verschiedene Kategorien:
Rechte bedeuten das Recht zum Lesen der Datei, das Recht zum Schreiben in die Datei oder das Recht, die Datei im Falle eines Skripts oder Programms auszuführen.
Auf der CLI können Sie
chown
, zchown guillermooo
chgrp
, zchgrp root
chmod
, zB chmod u+w filename.ext
(Fügt Schreibrechte für den Eigentümer der Datei hinzu filename.ext
)Wenn Sie mehr über diese Tools erfahren möchten, öffnen Sie ein Terminal und geben Sie Folgendes ein man [tool]
, z man chmod
.
chown guillermooo
sollte das nicht sein chown guillermooo filename
?
Warnung: Das Ändern der Berechtigungen für Dateien und Verzeichnisse ist möglicherweise schädlich und kann dazu führen, dass Ihr System nicht mehr verwendet werden kann. Wenn wir rekursiv als root auf dem falschen Pfad laufen, können wir an einem Punkt angelangt sein, an dem wir Ubuntu neu installieren müssen. Es ist daher eine gute Idee, Berechtigungen nicht außerhalb von HOME-Verzeichnissen zu ändern, und die rekursive Ausführung der Befehle als root sollte nach Möglichkeit vermieden werden.
Ubuntu hat das Konzept der Berechtigungen von Unix übernommen, wenn es für Dateien oder Verzeichnisse drei Aufgaben gibt, die wir zulassen oder ablehnen können:
(Das Durchsuchen eines Verzeichnisses bedeutet im Wesentlichen, es als Teil eines Pfadnamens zu verwenden. Weitere Erläuterungen finden Sie unter https://unix.stackexchange.com/a/13891 oder https://unix.stackexchange.com/questions/21251 .)
Darüber hinaus haben wir drei Fälle, in denen wir eine Erlaubnis erteilen:
Um die Kombination dieser zu sortieren, verwenden wir ein Binärsystem, in dem jedes Bit eine Berechtigung definiert. Dies kann am besten in der folgenden Tabelle gezeigt werden
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
Nun, wenn wir zum Beispiel wollen
a) der Besitzer einer Datei (= user) hat r ead, w rite und e x ecute Erlaubnis,
b) die Gruppe gewährt der Datei r ead und e x ecute Berechtigungen und
c) alle anderen nur haben sollten r ead Zugang.
Dann lautet die resultierende Dateiberechtigung:
u g o
rwx r-x r--
Um dies in den Oktalzahlen zu erhalten, z. Für den chmod
Befehl oder wenn wir eine Fehlermeldung verstehen müssen, müssen wir die obige Tabelle wie folgt füllen:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
Jede Berechtigungsnummer muss für einen Benutzer (4 + 2 + 1 = 7), eine Gruppe (4 + 0 + 1 = 5) und eine andere (4 + 0 + 0 = 4) addiert werden. Die resultierende Zahl ist dann:
u g o
7 5 4
Wir haben jetzt zwei Möglichkeiten, die Berechtigungsbits zu ändern chmod
:
chmod u+rwx g+rx o+r filename
oder viel einfacher mit
chmod 751 filename
Beide Befehle tun dasselbe.
Die Standardberechtigung für eine neu erstellte Datei in unserem Haus ist 664 (-rw-rw-r--).
Wenn wir wollen, dass Dateien als Programme ausführbar sind, müssen wir diese Berechtigung ändern.
Beachten Sie, dass wir auch die Berechtigung des Verzeichnisses ändern müssen, in dem sich diese ausführbare Datei befindet. Nur wenn sowohl das ausführbare Bit der Datei als auch des Verzeichnisses gesetzt sind, können wir diese Datei als Programm ausführen.
Wenn Sie eine Datei nach Hause kopieren, gehen ihre Berechtigungen verloren, die durch unsere eigenen Standardberechtigungen ersetzt werden (es sei denn, wir kopieren mit erweiterten Optionen, z. B. einer Archivierungsoption).
Beachten Sie auch, dass die Datei möglicherweise ihre Berechtigung von ihrem Mount-Punkt bzw. von ihrem Mount-Punkt erbt. Mount-Optionen. Dies ist wichtig, wenn Windows-formatierte Laufwerke bereitgestellt werden, die keine Unix-Berechtigungen unterstützen.
Wir erkennen bald, dass dies nur die Hälfte der Geschichte war. Wir müssen auch Sachen aussortieren. Zu diesem Zweck hat jede Datei oder jeder Ordner einen definierten Eigentümer und eine definierte Gruppenmitgliedschaft.
Jedes Mal, wenn wir eine Datei erstellen, sind wir der Eigentümer einer Datei und die Gruppe der Datei auch wir. Mit können ls -l
wir die Berechtigungen, den Besitz und die Gruppe wie in der folgenden Beispielausgabe sehen:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- Wir dürfen nur Berechtigungen, Gruppen oder Eigentumsrechte an einer Datei ändern, die uns gehört.
Wenn wir nicht der Dateieigentümer sind, erhalten wir eine Permission denied
Fehlermeldung. Nur root kann dies für alle Dateien ändern. Aus diesem Grund müssen wir sudo
bei der Bearbeitung von Dateien, die nicht von uns stammen, die Erlaubnis verwenden. Es gibt zwei integrierte Befehle chown
für Benutzer und chgrp
Gruppen.
Um den Besitz einer Datei von einem beliebigen Benutzer in einen anderen zu ändern, takkat
können Sie den folgenden Befehl ausführen:
sudo chown takkat testfile
Um die Gruppe einer Datei zu ändern, geben takkat
wir Folgendes aus
sudo chgrp takkat testfile
Weitere Informationen und Optionen finden Sie auf den Hilfeseiten der Befehle. Es gibt auch diesen schönen, ausführlicheren Leitfaden, der zum Lesen empfohlen wird:
Hier finden Sie auch einige verwandte Fragen: