Quel est le nombre après les autorisations de fichiers Unix / Linux comme «-rw-rw-r--. 1 "signifie en sortie" ls -l "

17

Quelqu'un peut-il expliquer -rw-rw-r--. 1et donner des informations "détaillées" sur la commande ls -lart.

Plus précisément, que signifie le nombre 1après les autorisations de fichier? Pourquoi change-t-il ou pourquoi est-il différent pour différents fichiers?

VAR121
la source
4
en.wikipedia.org/wiki/…
Karoly Horvath
2
Avez-vous essayé de trouver vous-même des informations (pages de manuel, etc.)? Les informations n'étaient-elles pas claires?
Daniel Andersson
1
@yi_H, je ne vois aucune information sur le nombre après les autorisations.
Shahbaz
1
J'étais sûr que la question de user1688102 avait déjà été posée et répondue mais je ne la trouve pas. @Shahbaz: c'est le nombre de références au même inode, c'est-à-dire le nombre de liens physiques, c'est-à-dire le nombre de noms différents pour le même fichier (hors liens logiciels).
RedGrittyBrick
1
J'ai vu la page du manuel. Les informations n'étaient pas claires et aucune information n'a été fournie concernant les autorisations dans man ls @Daniel
VAR121

Réponses:

15

Quelques exemples:

-rwxrw-r-- 1est un fichier avec des privilèges de lecture, d'écriture et d'exécution pour le propriétaire. Le groupe a lu et écrit, et d'autres ont seulement lu. Il n'y a aucun lien vers ces données.

drwxr-xr-x 10est un répertoire avec 8 fichiers. Les 2 supplémentaires sont .et ... Seul le propriétaire peut créer des fichiers dans ce répertoire, d'autres peuvent accéder aux fichiers qui se trouvent dans le répertoire et lire le contenu de ces fichiers si les privilèges le permettent.

-r-------- 2est un fichier que seul le propriétaire peut lire, mais ne peut ni exécuter ni modifier. Il a un lien, ce qui signifie qu'il existe une autre référence de fichier sur le disque quelque part qui accède aux mêmes données. Ainsi, le "contenu du fichier" réel sur le disque a 2 "fichiers" qui le référencent. Ces liens sont souvent créés en utilisant lnsans fournir -s.

Donc:

  • Le caractère 1 est le type de nœud: communément -ou dindiquant un fichier ou un répertoire.
  • Les caractères 2, 3, 4 indiquent la rlecture, le write et le xrésultat pour le propriétaire.
  • Les personnages 5, 6, 7 font de même pour le groupe.
  • Les caractères 8, 9, 10 font de même pour les autres.
  • Le nombre de caractères d'autorisation suivants indique le nombre de liens si le nœud est un fichier et le nombre de "sous-nœuds" si le nœud est un répertoire.

Voir le chapitre Le format long de man ls.

sapht
la source
Comme l'a dit @sapht, le nombre (pour un répertoire) à la fin implique que le nombre de fichiers dans un répertoire est faux, je suppose. Parce que j'ai des milliers de fichiers dans le répertoire et qu'il montre toujours 2
VAR121
Je n'ai jamais vu un ls qui n'imprime pas le nombre de sous-nœuds de répertoire en utilisant un format long. Sur quel OS / distribution êtes-vous? Gnu ls,, busybox et darwin affichent tous le nombre de nœuds. S'agit-il vraiment d'un répertoire et non d'un autre type de nœud?
2012
Ma distribution (Linux Mint 18.3) n'a pas un tel chapitre dans lsla page de manuel de. Aucun des champs n'y est expliqué. Je pense que c'est la même chose pour Ubuntu.
bleistift2
5

Pour les fichiers, il s'agit du nombre de liens physiques vers le contenu du fichier. 1 signifie pas de liens durs (le cas typique), un nombre N au-dessus de 1 signifie cela et un autre N-1 noms de fichiers partagent le même contenu.

Pour les répertoires, la plupart des systèmes de fichiers, mais pas tous, indiquent un nombre de liens de 2+ NN est le nombre de sous-répertoires.

ndemou
la source
1

[max @ localhost ~] $ ll

total 4

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

Ici 2 signifie le nombre de liens

maintenant je vais créer 3 répertoires dans zzz

maintenant la valeur passe à 5

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

[max @ localhost zzz] $ cd

[max @ localhost ~] $ ll

total 4

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

C'est parce que maintenant 5 répertoires sont présents dans zzz 3 a b cet 2 sont des répertoires cachés. ..

si je crée un fichier, il ne se passera rien pour le nombre de liens

[max @ localhost zzz] $ touch 1 2 3
[max @ localhost zzz] $ ls -al
20 au total
drwxrwxr-x 5 max max 4096 25 sept 17:26. ------> nombre actuel de liens vers l'annuaire
drwx ------ 5 max max 4096 25 sept 17:12 .. ------> nombre de liens du répertoire parent
-rw-rw-r-- 1 max max 0 25 sept 17:26 1
-rw-rw-r-- 1 max max 0 25 sept 17:26 2
-rw-rw-r-- 1 max max 0 25 sept 17:26 3
drwxrwxr-x 2 max max 4096 25 sept. 17:16 a
drwxrwxr-x 2 max max 4096 25 sept. 17:16 b
drwxrwxr-x 2 max max 4096 25 sept 17:16 c
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
total 4
drwxrwxr-x 5 max max 4096 25 sept 17:26 zzz

mais si je supprime un répertoire, le nombre de liens changera

[max @ localhost zzz] $ rmdir bc
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
total 4
drwxrwxr-x 3 max max 4096 25 sept. 17:28 zzz
max
la source
Beaucoup (peut-être trop) de détails pour les répertoires, pas un mot pour les fichiers.
ndemou