Che cosa fa il numero dopo i permessi dei file Unix / Linux come "-rw-rw-r--. 1 "significa in uscita" ls -l "


11

Qualcuno può spiegare -rw-rw-r--. 1 e dare alcune informazioni "dettagliate" sul comando ls -lart.

In particolare, cosa fa il numero 1 dopo che i permessi dei file significano?  Perché cambia o perché è diverso per file diversi?



1
Hai provato a cercare informazioni da solo (pagine di manuale, ecc.)? Le informazioni non erano chiare?
Daniel Andersson

@yi_H, non vedo alcuna informazione sul numero dopo le autorizzazioni.
Shahbaz

Ero sicuro che la domanda di user1688102 fosse già stata fatta e avesse risposto ma non la trovassi. @Shahbaz: è il numero di riferimenti allo stesso inode, cioè il numero di hard-link, ovvero il numero di nomi diversi per lo stesso file (esclusi i soft-link).
RedGrittyBrick

Ho visto l'uomo nella pagina. Le informazioni non erano chiare e non sono state fornite informazioni sulle autorizzazioni in man ls @Daniel
VAR121

Risposte:


14

Qualche esempio:

-rwxrw-r-- 1 è un file con privilegi di lettura, scrittura ed esecuzione per il proprietario. Il gruppo ha letto e scritto e altri hanno solo letto. Non ci sono collegamenti a questi dati.

drwxr-xr-x 10 è una directory con 8 file. I 2 in più sono . e ... Solo il proprietario può creare file in questa directory, altri possono accedere ai file presenti nella directory e leggere i contenuti di tali file se i privilegi lo consentono.

-r-------- 2 è un file che solo il proprietario può leggere, ma non può eseguire o modificare. Ha un link, il che significa che c'è un altro riferimento di file su disco da qualche parte che accede agli stessi dati. Quindi il "contenuto di file" reale sul disco ha 2 "file" che lo fanno riferimento. Questi collegamenti sono spesso creati usando ln senza fornitura -s.

Così:

  • Il carattere 1 è il tipo di nodo: comunemente - o d indicando il file o la directory.
  • I caratteri 2, 3, 4 indicano r ead, w rito, ed e x ecuto per il proprietario.
  • I personaggi 5, 6, 7 fanno lo stesso per il gruppo.
  • I caratteri 8, 9, 10 fanno lo stesso per gli altri.
  • Il numero di caratteri di autorizzazione successivi indica il numero di collegamenti se il nodo è un file e il numero di "nodi secondari" se il nodo è una directory.

Vedi il capitolo Il lungo formato di man ls.


Come @sapht ha detto che il numero (per una directory) alla fine implica che il numero di file in una directory è sbagliato, immagino. Perché ho migliaia di file nella directory e sta ancora mostrando 2
VAR121

Non ho mai visto un ls che non stampa il conteggio del sottonodo della directory usando il formato lungo. Su quale SO / distribuzione sei? Gnu ls, busybox e darwin stampano tutti il ​​conteggio dei nodi. È davvero una directory e non un altro tipo di nodo?
sapht

1

In breve: È il numero di hard-link al contenuto del file. 1 significa nessun hard link, 2 significa questo e un altro nome di file condividono lo stesso contenuto, ecc.

Per le directory la maggior parte ma non tutti i filesystem riportano un conteggio dei collegamenti di 2 + nr_of_subdirs (per maggiori informazioni leggere Questo )


0

[max @ localhost ~] $ ll

totale 4

drwxrwxr-x 2 max max 4096 set 25 17:11 zzz

Qui 2 indica il numero del conteggio dei collegamenti

ora creerò 3 directory all'interno di zzz

ora il valore cambia in 5

[max@localhost ~]$ cd zzz
[max@localhost zzz]$ mkdir a b c
drwxrwxr-x 5 max max 4096 Sep 25 17:16 .
drwx------ 5 max max 4096 Sep 25 17:12 ..
drwxrwxr-x 2 max max 4096 Sep 25 17:16 a
drwxrwxr-x 2 max max 4096 Sep 25 17:16 b
drwxrwxr-x 2 max max 4096 Sep 25 17:16 c

[max @ localhost zzz] $ cd

[max @ localhost ~] $ ll

totale 4

drwxrwxr-x 5 max max 4096 set 25 17:16 zzz

Questo perché ora sono presenti 5 directory all'interno di zzz 3 a b c e 2 sono le directory nascoste . ..

se creo il file allora non accadrà nulla per collegare il conteggio

[max@localhost zzz]$ touch 1 2 3
[max@localhost zzz]$ ls -al
total 20
drwxrwxr-x 5 max max 4096 Sep 25 17:26 .   ------> current directory link count
drwx------ 5 max max 4096 Sep 25 17:12 ..  ------> parent directory link count
-rw-rw-r-- 1 max max    0 Sep 25 17:26 1
-rw-rw-r-- 1 max max    0 Sep 25 17:26 2
-rw-rw-r-- 1 max max    0 Sep 25 17:26 3
drwxrwxr-x 2 max max 4096 Sep 25 17:16 a
drwxrwxr-x 2 max max 4096 Sep 25 17:16 b
drwxrwxr-x 2 max max 4096 Sep 25 17:16 c
[max@localhost zzz]$ cd
[max@localhost ~]$ ll
total 4
drwxrwxr-x 5 max max 4096 Sep 25 17:26 zzz

ma se cancello qualsiasi directory, il conteggio dei collegamenti cambierà

[max@localhost zzz]$ rmdir b c
[max@localhost zzz]$ cd
[max@localhost ~]$ ll
total 4
drwxrwxr-x 3 max max 4096 Sep 25 17:28 zzz

Molto (forse troppo) dettaglio per dirs non una parola per i file.
ndemou
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.