GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Interviewfragen – Grundlegende Datei- und Verzeichnisberechtigungen

Was sind grundlegende Linux-Dateiberechtigungen?

Linux ist wie UNIX ein Mehrbenutzersystem, und Dateiberechtigungen sind eine Möglichkeit, das System vor böswilliger Manipulation zu schützen. Eine Möglichkeit, sich Zugang zu verschaffen, wenn Ihnen die Berechtigung verweigert wird, besteht darin, mit su root zu werden. Denken Sie daran, dass jeder, der das Root-Passwort kennt, vollen Zugriff hat. Der Wechsel zum Superuser ist jedoch nicht immer bequem oder empfehlenswert, da es leicht ist, Fehler zu machen und wichtige Konfigurationsdateien als Superuser zu ändern. Alle Dateien und Verzeichnisse sind „Eigentum“ der Person, die sie erstellt hat. Zum Beispiel in der Auflistung:

-rw-rw-r--    1 john   sap      150 Mar 19 08:08 file1.txt

Die Datei file1.txt gehört oder gehört John. Das heißt, Sie können festlegen, wer die Datei lesen, in die Datei schreiben oder (wenn es sich um eine Anwendung statt um eine Textdatei handelt) wer die Datei ausführen darf. Auf ähnliche Weise können Sie auch den Zugriff auf Verzeichnisse steuern.

Lesen, Schreiben und Ausführen sind die drei Haupteinstellungen in Berechtigungen. Da Benutzer bei der Erstellung ihres Kontos einer Gruppe zugeordnet werden, können Sie auch festlegen, ob bestimmte Gruppen eine Datei lesen, schreiben oder ausführen können. Anhand des obigen file1.txt-Beispiels oben können Sie sehen, dass viele Details bereitgestellt werden. Sie können sehen, wer die Datei lesen (r) und schreiben (w) kann, wer die Datei erstellt hat (john) und zu welcher Gruppe der Eigentümer gehört (sap). Denken Sie jedoch daran, dass der Name Ihrer Gruppe standardmäßig mit Ihrem Anmeldenamen identisch ist.

Weitere Informationen rechts neben der Gruppe sind Dateigröße, Datum und Uhrzeit der Dateierstellung und Dateiname. Die erste Spalte zeigt aktuelle Berechtigungen; es hat zehn Slots. Der erste Slot repräsentiert den Dateityp. Die verbleibenden neun Slots sind eigentlich drei Berechtigungssätze für drei verschiedene Kategorien von Benutzern. Zum Beispiel:

-rw-rw-r--

Diese drei Gruppen sind der Eigentümer der Datei, die Gruppe, zu der die Datei gehört, und „Andere“, also alle anderen Benutzer.

 -    (rw-)   (rw-)   (r--) 1 john sap
|      |       |       |
type  owner  group   others

Das erste Element, das den Dateityp angibt, zeigt normalerweise eines der folgenden:

  • d — ein Verzeichnis
  • – (Bindestrich) — eine normale Datei (anstelle eines Verzeichnisses oder Links)
  • l — ein symbolischer Link zu einem anderen Programm oder einer anderen Datei an anderer Stelle im System

Neben dem ersten Element sehen Sie in jedem der folgenden drei Sets eines der folgenden Elemente:

  • r — Datei kann gelesen werden
  • w — Datei kann beschrieben werden
  • x — Datei kann ausgeführt werden (falls es sich um ein Programm handelt)

Wenn Sie einen Bindestrich in Eigentümer, Gruppe oder andere sehen, bedeutet dies, dass eine bestimmte Berechtigung nicht gewährt wurde. Sehen Sie sich noch einmal die erste Spalte von file1.txt an und identifizieren Sie ihre Berechtigungen.

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Der Eigentümer der Datei (in diesem Fall John) hat die Berechtigung zum Lesen und Schreiben in die Datei. Die Gruppe sap hat auch die Berechtigung, file1.txt zu lesen und zu schreiben. Es ist kein Programm, also hat weder der Eigentümer noch die Gruppe die Berechtigung, es auszuführen. Alle anderen Benutzer können die Datei nur lesen.

Wie entsprechen Dateiberechtigungsbits den Werten, die chmod bereitgestellt werden?

Die auf ein Dateisystemobjekt angewendeten Berechtigungsbits entsprechen direkt den Werten, die in dem 4-Ziffern-Tupel angegeben werden können, das dem Dienstprogramm chmod im folgenden Befehl übergeben wird:

chmod abcd [file system object]

Jeder Wert im Ziffernsatz abcd besteht aus einer Summe der Werte 1, 2 und 4. Durch Addition dieser Werte für jede Ziffer kann ein Wert generiert werden, um alle Dateiobjektattribute zu setzen:

  • ein – Diese Ziffer steuert spezielle Attributeinstellungen. der Wert 1 setzt das Setuid-Bit, der Wert 2 das Setgid-Bit und der Wert 4 das Sticky-Bit für das Objekt
  • b , c und d – Diese Ziffern steuern die Lese-, Schreib- und Ausführungsberechtigungen für den Dateieigentümer, die primäre Gruppe der Dateieigentümer und alle anderen Benutzer. Der Wert 4 aktiviert die Leseberechtigung, der Wert 2 die Schreibberechtigung und der Wert 1 die Ausführungsberechtigung.

Beispiele

So stellen Sie eine Datei so ein, dass sie klebrig, lesbar und beschreibbar für den Eigentümer, lesbar für ihre primäre Gruppe und unzugänglich für alle anderen ist:

# chmod 4610 filename

Um jedem im System alle Berechtigungen zu erteilen:

# chmod 0777 filename

Weitere Informationen zu chmod finden Sie auf der chmod-Manpage.

Wie setze ich Datei- und Verzeichnisberechtigungen mit chown und chmod?

Verwenden Sie den Chown Befehl, um den Besitzer und/oder die Gruppe für die Datei zu ändern. Die Syntax ist einfach. Geben Sie einfach chown ein, gefolgt von dem Benutzer, der die Datei besitzen soll, und optional einem Doppelpunkt („:“) und dem Gruppennamen. Bitte beachten Sie, dass die Benutzer- und/oder Gruppennamen auf dem System vorhanden sein müssen. Zum Beispiel:

# chown john:sap file1.txt
# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

führt dazu, dass der Benutzer john die Datei besitzt. Der Gruppeneigentümer der Datei wird auch auf die Gruppe von john festgelegt, die sap.

ist

Verwenden Sie den Befehl chmod, um Berechtigungen zu ändern. Dieses Beispiel zeigt, wie Sie die Berechtigungen für file1.txt mit dem Befehl chmod ändern. Wenn Sie der Eigentümer der Datei sind oder beim Root-Konto angemeldet sind, können Sie alle Berechtigungen für den Eigentümer, die Gruppe und andere ändern. Derzeit können der Eigentümer und die Gruppe die Datei lesen und in sie schreiben. Jeder außerhalb der Gruppe kann die Datei nur lesen (r–).

ACHTUNG :Denken Sie daran, dass Dateiberechtigungen eine Sicherheitsfunktion sind. Wenn Sie jemand anderem erlauben, Dateien zu lesen, zu schreiben und auszuführen, erhöhen Sie das Risiko, dass Dateien manipuliert, geändert oder gelöscht werden. Grundsätzlich sollten Sie nur denen Lese- und Schreibrechte erteilen, die diese auch wirklich benötigen.

Wie ändere ich Datei-/Verzeichnisberechtigungen mithilfe von Kurzschreibweisen?

Im folgenden Beispiel möchten Sie jedem erlauben, in die Datei zu schreiben, damit er sie lesen, Notizen schreiben und speichern kann. Das bedeutet, dass Sie den Abschnitt „Andere“ der Dateiberechtigungen ändern müssen. Schauen Sie sich zuerst die Datei an. Am Shell-Prompt würden Sie Folgendes eingeben:

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Jetzt würden Sie Folgendes eingeben:

# chmod o+w file1.txt

Der obige Befehl teilt dem System mit, dass Sie anderen Schreibrechte für die Datei file1.txt geben möchten. Um die Ergebnisse zu überprüfen, listen Sie die Details der Datei erneut auf. Jetzt sieht die Datei so aus:

-rw-rw-rw-    1 john sap     150 Mar 19 08:08 file1.txt

Jetzt kann jeder die Datei lesen und schreiben. Um Lese- und Schreibberechtigungen von file1.txt zu entfernen, verwenden Sie den Befehl chmod, um sowohl die Lese- als auch die Schreibberechtigung zu entfernen.

# chmod go-rw file1.txt

Indem Sie go-rw eingeben , weisen Sie das System an, Lese- und Schreibberechtigungen für die Gruppe und für andere aus der Datei file1.txt zu entfernen.

Das Ergebnis sieht folgendermaßen aus:

-rw-------    1 john sap    150 Mar 19 08:08 file1.txt

Stellen Sie sich diese Einstellungen als eine Art Kurzschrift vor, wenn Sie Berechtigungen mit chmod ändern möchten, denn alles, was Sie wirklich tun müssen, ist, sich mit dem chmod-Befehl ein paar Symbole und Buchstaben zu merken. Hier ist eine Liste dessen, was die Kurzschrift darstellt:

Identitäten

u - the user who owns the file (that is, the owner)
g - the group to which the user belongs
o - others (not the owner or the owner's group)
a - everyone or all (u, g, and o)

Berechtigungen

r - read access
w — write access
x — execute access

Aktionen

+ — adds the permission
- — removes the permission
= — makes it the only permission

Hier sind einige allgemeine Beispiele für Einstellungen, die mit chmod verwendet werden können:

g+w - adds write access for the group
o-rwx - removes all permissions for others
u+x - allows the file owner to execute the file
a+rw - allows everyone to read and write to the file
ug+r - allows the owner and group to read the file
g=rx - allows only the group to read and execute (not write)

Wie entferne ich alle Berechtigungen für alle Benutzer mithilfe von Kurzschreibweisen?

Möchten Sie Ihre Berechtigungsfähigkeiten testen? Entfernen Sie alle Berechtigungen aus file1.txt – für alle.

# chmod a-rwx file1.txt

Prüfen Sie nun, ob Sie die Datei mit dem Befehl cat file1.txt lesen können, der Folgendes zurückgeben sollte:

cat: file1.txt: Permission denied

Durch das Entfernen aller Berechtigungen, einschließlich Ihrer eigenen, wurde die Datei erfolgreich gesperrt. Aber da die Datei Ihnen gehört, können Sie ihre Berechtigungen jederzeit mit dem folgenden Befehl zurücksetzen:

# chmod u+rw file1.txt

Wie listet man Dateiberechtigungen im Oktalformat auf?

Verwenden Sie stat, um Dateiberechtigungen im Oktalformat aufzulisten Befehl, der von den coreutils bereitgestellt wird Paket. Führen Sie den folgenden Befehl aus, um oktale Berechtigungen für alle Dateien und Verzeichnisse im aktuellen Arbeitsverzeichnis zu erhalten:

$ stat -c "%a %n" *

Um oktale Berechtigungen für Inhalte in einem bestimmten Verzeichnis zu erhalten, sagen wir /usr/share, führen Sie den folgenden Befehl aus:

$ stat -c "%a %n" /usr/share/*
755 /usr/share/aclocal
755 /usr/share/alsa
755 /usr/share/anaconda
755 /usr/share/appdata
...

Um oktale Berechtigungen nur für das Verzeichnis zu erhalten, sagen wir /usr/share, und nicht für den darin enthaltenen Inhalt, führen Sie den folgenden Befehl aus:

$ stat -c "%a %n" /usr/share/
755 /usr/share/

Wie kann man alle Systemdateiberechtigungen auf die Standardwerte zurücksetzen, falls alle Dateiberechtigungen auf 777 geändert wurden?

Sie haben versehentlich den folgenden Befehl ausgeführt.

# chmod -R 777 /

Gibt es eine Möglichkeit, zu den ursprünglichen Berechtigungen zurückzukehren?

Führen Sie den folgenden Befehl aus, um zu den ursprünglichen Berechtigungen zurückzukehren.

# rpm -a --setperms

Dadurch werden einige Fehler angezeigt, aber man kann sie vernachlässigen.

Wie kopiere ich die Dateien mit spezieller Erlaubnis über das Netzwerk?

Um das Kopieren von Dateien mit bestimmten Berechtigungen zu erreichen, kann das Dienstprogramm rsync verwendet werden:

# rsync --chmod=u+rwx,g+rx,o+rx  testfile [email protected]:/tmp/

Dadurch wird die Testdatei in das Home-Verzeichnis des Benutzers kopiert und die Berechtigungen für die kopierte Datei wären 755.


Linux
  1. Grundlagen der Linux-Dateiberechtigungen

  2. Linux – Unix-Berechtigungen und Dateitypen verstehen?

  3. Linux – So legen Sie Standard-Dateiberechtigungen für alle Ordner/Dateien in einem Verzeichnis fest

  4. UNIX / Linux:Leitfaden für Anfänger zu Datei- und Verzeichnisberechtigungen (umask, chmod, lesen, schreiben, ausführen)

  5. 6 mv-Befehlsbeispiele zum Verschieben oder Umbenennen von Linux-Dateien und -Verzeichnissen

Grundlegendes zu Linux-Dateiberechtigungen

So kopieren Sie Dateien und Verzeichnisse unter Linux

Grundlegende Linux-Verzeichnisberechtigungen und wie man sie überprüft

Verwalten Sie Verzeichnis- und Dateiberechtigungen mit chmod Recursive

Grundlegende Dateiberechtigungen und Eigentumsrechte in Linux verstehen

Fragen im Vorstellungsgespräch unter Linux Network File System (NFS).