Was zeigt das erste Zeichen der Zeichenfolge im UNIX-Modus an?

28

Ich bin sehr vertraut mit Linux-Dateiberechtigungen und speziellen Berechtigungen (Sticky Bit, Suid, Guid)

Aber ich weiß nicht, wofür das csteht? Ist es eine Erlaubnis oder etwas anderes? Ich habe ein bisschen gegoogelt und kann es nicht herausfinden.

Hier ist die Gerätedatei, die es enthält.

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
user169254
quelle
Scheint, als hätte jeder /devdiese spezielle Erlaubnis.
Seth
1
Es ist keine Erlaubnis. Es ist der Dateityp.
Gilles 'SO- hör auf böse zu sein'

Antworten:

34

Dies bedeutet, dass die Datei eine Zeichenspezialdatei ist - im Grunde eine Gerätedatei, die seriellen Zugriff ermöglicht (im Gegensatz zu einem Blockspezialgerät wie einem Festplattenlaufwerk). Zum Beispiel Terminals und serielle Geräte werden durch Zeichen spezielle Dateien Schnittstelle ( /dev/tty1, /dev/ttyS0usw.).

Eine kurze Einführung in Gerätedateien finden Sie unter Linux / UNIX: Gerätedateien [cyberciti.biz]. Eine ausführlichere Beschreibung finden Sie in dieser Stapelaustausch-Antwort. Understanding / dev und seine Unterverzeichnisse und Dateien . Informationen zu den zugrunde liegenden Datenstrukturen finden Sie in Kapitel 4 des Linux- Kernelmodul- Programmierhandbuchs: Character Device Files [tldp.org].

Stahlfahrer
quelle
3
Gut, aber es ist besser, wenn Sie Ihre Antwort ein wenig erweitern und einige nützliche Links bereitstellen. :)
Saurav Kumar
3
@ SauravKumar zögern Sie nicht, einige hinzuzufügen - ich konnte nichts auf einem geeigneten Level finden (entweder nichts hinzugefügt oder direkt in die struct char_deviceC-Code-Kernel-Programmierung
eingetaucht
@steeldriver Diese könnten Ihnen einen Anfang geben :)
Seth
19

Ein Zeichengerät ist cals erster Buchstabe der Moduszeichenfolge mit einem gekennzeichnet . Ebenso ist ein Blockgerät mit einem gekennzeichnet b,

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Jan 21 21:50 /dev/null
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jan 21 21:50 /dev/sda

Es gibt noch mehr dieser speziellen Geräte (Dateien in dem Sinne, dass alles eine Datei in Linux ist),

d : directory
s : socket
p : pipe
D : Door
l : symbolic link etc.

Weitere Informationen finden Sie auf dieser Wikipedia- Seite.

souravc
quelle
gibt es eine möglichkeit das zu katzen?
Edik Mkoyan
5

ls -lGibt eine UNIX-Zeichenfolge mit 10 Symbolen aus, die im Volksmund als Berechtigungszeichenfolge bezeichnet wird. z.B

-rw-rw-r--  1 userName groupName   13200650 Dec 13 21:23 fileName

Das erste Zeichen der Berechtigungs- oder Moduszeichenfolge , das als Dateideskriptor bezeichnet wird , gibt den Dateityp an, und die verbleibenden neun Zeichen in Dreiergruppen geben die Berechtigungen für die betreffende Datei an. Dabei gilt Folgendes:

  • Die erste Gruppe von drei Zeichen (nach dem ersten Zeichen unter den 10) gibt die Berechtigungen des Besitzers an.
  • Die zweite Dreiergruppe bestimmt die Berechtigungen für die Gruppe.
  • Die letzte Dreiergruppe legt Berechtigungen für andere (oder die ganze Welt) fest.

In dem obigen Beispiel zeigt das erste Zeichen / Symbol, das "-" , eine normale Datei an.

Während in den folgenden Beispielen,

crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
crw-rw-rw- 1 root root 1, 5 Jan 13 20:56 /dev/zero

Das erste Zeichen der Berechtigungszeichenfolge ist "c" und wie oben angegeben ein Dateitypindikator, der ein Zeichengerät angibt .

Abgesehen von dem -sind ceinige andere Dateideskriptoren:

  • d -> Verzeichnis
  • l -> symbolischer Link
  • s -> Unix Socket
  • b -> Gerät blockieren
  • p -> Pipeline
  • D -> Tür

Verweise:

präzise
quelle
2

Das erste Zeichen in der ersten Spalte, dh 'c' in crw-rw-rw- oben, teilt einem informierten Benutzer den Dateityp mit, in diesem Fall ein Zeichengerät.

Maythux
quelle