Was sind die Dateiattribute von crw, brw, lrw usw. in Linux?

Was sind die Dateiattribute von crw, brw, lrw usw. in Linux?

Was ist eine Datei?

Eigentlich sind alle Dateien Zeichenfolgen, aber mit der Verwendung geeigneter Analysemethoden können effektive Informationen gewonnen werden. Um Dateivorgänge zu vereinfachen, haben Benutzer Dateien je nach Dateianalysemethode unterschiedliche Typen zugewiesen und sie für andere Benutzer wie folgt markiert.

Als ich heute die Eigenschaften der Datei /dev/fuse überprüfte, sah ich das Berechtigungsbit crw_ und war einen Moment lang verwirrt:

[root@localhost ~]# ll /dev/fuse
crw-rw-rw-. 1 root root 10, 229 20. September 11:12 /dev/fuse

Zu beachten ist hierbei, dass die entsprechenden Antworten aus dem Internet stammen.

Unter Linux steht c für eine Zeichengerätedatei, b für eine Blockgerätedatei, l für eine symbolische Linkdatei, r für die Leseberechtigung und w für die Schreibberechtigung.

Interpretation von Linux-Dateiattributen:

Dateityp:

-: Normale Datei (f)
d: Verzeichnisdatei
b: Gerätedatei blockieren (Block)
c: Zeichengerätedatei (Zeichen)
l: symbolische Linkdatei
p: Befehlspipelinedatei (Pipe)
s: Socket-Datei (Socket)
Dateiberechtigungen: 9 Bit, jede Gruppe besteht aus 3 Bit, jede Gruppe: rwx (Lesen, Schreiben, Ausführen), wenn die Gruppe eine bestimmte Berechtigung nicht hat, verwenden Sie stattdessen -.
Die erste Gruppe sind die Berechtigungen des Dateibesitzers. Der Dateibesitzer kann lesen und schreiben, aber nicht ausführen.
Die zweite Gruppe ist: Berechtigungen für die gleiche Gruppe Die dritte Gruppe ist: Berechtigungen für andere Gruppen, die nicht zu dieser Gruppe gehören

Schauen wir uns die Dateitypen in Linux an

(1) Normale Datei ('-', normale Datei)

Unterteilt in: Binärdateien und Textdateien

Binärdateien sind für Maschinen sichtbar, z. B. .bin- und .elf-Dateien.

Textdateien: Für die menschliche Anzeige normalerweise in ASCII-Kodierung, müssen mit ASCII-Kodierung analysiert werden, zum Beispiel: .txt-, .c-Dateien.

(2) Ordnerdatei ('d', Verzeichnisdatei)

Eine spezielle Datei. Besonders ist, dass sie mit ihrer Bibliotheksfunktion geöffnet werden muss.

(3) Linkdatei ('l', Linkdatei)

Hier ist die Softlink-Datei.

Hinweis: Der Unterschied zwischen Softlink-Dateien und Hardlink-Dateien.

Die Softlink-Datei ist eine eigenständige Datei und verfügt über einen eigenen Inode.

Eine Hardlink-Datei ist keine unabhängige Datei. Sie teilt sich denselben Inode mit der verknüpften Datei.

(4) Pipeline-Datei ('p', piple-Datei)

Wird für die Prozesskommunikation verwendet.

(5) Socket-Datei ('s', Socket-Datei)

Für den Netzwerkgebrauch.

(6) Zeichengerätedatei ('c', Zeichendatei)

Es handelt sich um eine virtuelle Datei, da sie nicht auf der Festplatte vorhanden ist und vom FS erstellt wird.

Direktes Lesen oder Schreiben nicht möglich, API muss verwendet werden.

(7) Gerätedatei blockieren ('b', Blockdatei)

Es handelt sich auch um eine virtuelle Datei, die für fd erstellt wurde und mithilfe der API gelesen und geschrieben werden muss.

3. Wie erhalte ich die Eigenschaften einer Datei?

(1) Verwenden des stat-Befehls in der Shell

(2) Verwendung der Stat-API im Programm

4. Dateiberechtigungen

(1) Wie erhalte ich Dateiberechtigungen?

Mithilfe der Stat-API im Programm können Sie das st_mode-Element abrufen. st_mode ist ein bitbasierter Inhaltsdatensatz, Sie müssen also nur das entsprechende Bit verwenden. Linux stellt das entsprechende Makro bereit, das verwendet werden kann.

(2) Wie kann ermittelt werden, ob ein Programm die Berechtigung zum Zugriff auf eine Datei hat?

Erstens werden die Dateiberechtigungen des Programms vom Benutzer bestimmt, der das Programm ausführt. Wenn der Benutzer über Berechtigungen verfügt, hat das Programm sie. Wenn der Benutzer sie nicht hat, hat das Programm sie nicht. Zweitens bestimmt das Programm, ob es die Berechtigung hat, die Zugriffs-API zu verwenden. Schließlich muss ein hervorragendes Programm zunächst die Berechtigungen für die Dateien bestimmen, mit denen es zu Beginn der Ausführung arbeitet. Wenn der Benutzer keine Berechtigungen hat, muss er daran erinnert werden.

(3) Wie ändere ich die Berechtigungen?

Es gibt einen chmod-Befehl in der Shell und auch eine chmod-API, sodass Sie diese API verwenden können.

(4) Wie werden die Berechtigungen für neu erstellte Dateien festgelegt?

Linux hat etwas Ähnliches wie eine Variable namens umask, und die Berechtigungen neuer Dateien werden durch umask bestimmt. Die Umask kann in der Shell geändert werden.

Zusammenfassen

Oben habe ich Ihnen die Dateiattribute crw, brw, lrw und andere in Linux vorgestellt. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So analysieren Sie die Attributschnittstelle zum Hinzufügen eines Dateisystems unter Linux oder Android
  • Python ändert die Berechtigungen von Dateien (Ordnern) in Linux
  • Linux-Shell - Beispiel zum Testen von Dateisystemattributen durch Identifizierung
  • Detaillierte Beispiele zum Anzeigen von Dateiattributen in Linux (ls, lsattr, file, stat)
  • Eine kurze Diskussion über die Linux-Ordnerattribute rwxrwxrwt
  • Zusammenfassung der Wissenspunkte zu den grundlegenden Attributen von Linux-Dateien

<<:  Ein Beispiel für die Umgestaltung eines Puzzlespiels mit vue3

>>:  Detaillierter Prozess zum Dekomprimieren und Installieren von mysql5.7.17 zip

Artikel empfehlen

Detaillierte Schritte zum Upgrade von mysql8.0.11 auf mysql8.0.17 unter Win2008

Upgrade-Hintergrund: Um die Sicherheitslücke in d...

Dieser Artikel hilft Ihnen, JavaScript-Variablen und -Datentypen zu verstehen

Inhaltsverzeichnis Vorwort: Freundliche Tipps: Va...

Schreiben Sie eine dynamische Uhr auf einer Webseite in HTML

Verwenden Sie HTML, um eine dynamische Web-Uhr zu...

MySQL-Variablenprinzipien und Anwendungsbeispiele

In der MySQL-Dokumentation können MySQL-Variablen...

jQuery realisiert den Gleiteffekt des Dropdown-Menüs

Wenn wir eine Webseite erstellen, möchten wir man...

Mybatis-Statistiken zur Ausführungszeit jeder SQL-Anweisung

Hintergrund In letzter Zeit werde ich in Intervie...

So installieren Sie Tomcat8 im Docker

1. Installieren Sie Tomcat8 mit Docker 1. Suchen ...

Tutorial zur Installation von VMWare15.5 unter Linux

Um VMWare unter Linux zu installieren, müssen Sie...

So konvertieren Sie ein JavaScript-Array in eine Baumstruktur

1. Nachfrage Das Backend stellt solche Daten bere...

Aufrufen von Baidu Map zum Abrufen von Längen- und Breitengrad in Vue

Im Projekt ist es erforderlich, den Breiten- und ...

So machen Sie React-Komponenten im Vollbildmodus

einführen Dieser Artikel basiert auf React + antd...

Einführung in MySQL-Anweisungskommentare

MySQL unterstützt drei Arten von Kommentaren: 1. ...