Cosa indica il primo carattere della stringa della modalità UNIX?


29

Conosco molto bene le autorizzazioni per i file Linux e i permessi speciali (sticky bit, suid, guid)

Ma non so cosa csignifichi? È un permesso o qualcos'altro? Ho fatto qualche google con e non riesco a capirlo.

Ecco il file del dispositivo che lo ha.

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null

Sembra che abbia tutto /devquel permesso speciale.
Seth,


1
Non è un permesso. È il tipo di file.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


34

Significa che il file è un file speciale di carattere , sostanzialmente un file di dispositivo che fornisce l'accesso seriale (al contrario di un dispositivo speciale a blocchi come un'unità disco). Ad esempio terminali e dispositivi seriali sono interfacciati tramite file speciali a caratteri ( /dev/tty1, /dev/ttyS0e così via).

Per una breve introduzione ai file del dispositivo, consultare Linux / UNIX: file del dispositivo [cyberciti.biz]. Per una discussione più dettagliata vedere questa risposta di stackexchange Comprendere / dev e i suoi file secondari e file . Per informazioni sulle strutture di dati sottostanti fare riferimento al Capitolo 4 della Guida alla programmazione del modulo kernel Linux: File dei dispositivi dei caratteri [tldp.org]


3
Bene, ma sarà meglio se espandi di più la tua risposta e fornisci alcuni link utili. :)
Saurav Kumar il

3
@SauravKumar non esitare ad aggiungerne alcuni - Non sono riuscito a trovare nulla a un livello adeguato (né ho aggiunto nulla o mi sono immerso direttamente nella struct char_deviceprogrammazione del kernel in codice C)
steeldriver

@steeldriver Questi potrebbero darti un inizio :)
Seth

20

Un dispositivo a caratteri è contrassegnato da a ccome prima lettera della stringa di modalità. Allo stesso modo, un dispositivo a blocchi è contrassegnato da un 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

ci sono più di questi dispositivi speciali (file nel senso che tutto è un file in Linux),

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

Vedi questa pagina di Wikipedia per maggiori dettagli.


c'è un modo per cat che?
Edik Mkoyan,

5

ls -lgenera una stringa di informazioni UNIX a 10 simboli popolarmente conosciuta come stringa di autorizzazione. per esempio

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

Il primo carattere della stringa di autorizzazione o della stringa di modalità , noto come descrittore di file , indica il tipo di file e i rimanenti nove presi in gruppi di tre indicano le autorizzazioni per il file in questione, dove:

  • il primo gruppo di tre caratteri (dopo il primo carattere tra i 10) indica le autorizzazioni del proprietario,
  • il secondo gruppo di tre autorizzazioni designate per il gruppo,
  • l'ultimo gruppo di tre designare autorizzazioni per gli altri (o per il mondo).

Qui, nell'esempio sopra, il primo carattere / simbolo "-" indica un file normale.

Mentre nei seguenti esempi,

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

il primo carattere delle stringhe di autorizzazione è "c" e come indicato sopra, è un indicatore del tipo di file che indica un dispositivo carattere .

Oltre a -, calcuni altri descrittori di file sono:

  • d -> directory
  • l -> collegamento simbolico
  • s -> Presa Unix
  • b -> dispositivo di blocco
  • p -> pipeline
  • D -> Porta

Riferimenti:


2

Il primo carattere nella prima colonna, ovvero "c" in crw-rw-rw- sopra, indica a un utente informato il tipo di file, in questo caso un dispositivo a caratteri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.