¿Qué significa el número después de los permisos de archivos Unix / Linux como "-rw-rw-r--. 1 "significa en la salida" ls -l "

17

¿ -rw-rw-r--. 1Alguien puede explicar y dar información "detallada" sobre el comando ls -lart.

Específicamente, ¿qué significa el número 1después de los permisos del archivo? ¿Por qué cambia o por qué es diferente para diferentes archivos?

VAR121
fuente
44
en.wikipedia.org/wiki/…
Karoly Horvath
2
¿Has intentado encontrar información tú mismo (páginas de manual, etc.)? ¿La información no estaba clara?
Daniel Andersson
1
@yi_H, no veo ninguna información sobre el número después de los permisos.
Shahbaz
1
Estaba seguro de que la pregunta del usuario 1688102 ya se había formulado y respondido, pero no puedo encontrarla. @Shahbaz: es el número de referencias al mismo inodo, es decir, el número de enlaces duros, es decir, el número de nombres diferentes para el mismo archivo (excluyendo enlaces blandos).
RedGrittyBrick
1
He visto la página del hombre. La información no era clara y no se proporcionó información sobre los permisos en man ls @Daniel
VAR121

Respuestas:

15

Algunos ejemplos:

-rwxrw-r-- 1es un archivo con privilegios de lectura, escritura y ejecución para el propietario. El grupo ha leído y escrito, y otros solo han leído. No hay enlaces a estos datos.

drwxr-xr-x 10es un directorio con 8 archivos. Los 2 extra son .y ... Solo el propietario puede crear archivos en este directorio, otros pueden acceder a qué archivos están en el directorio y leer el contenido de esos archivos si los privilegios lo permiten.

-r-------- 2es un archivo que solo el propietario puede leer, pero no puede ejecutar o modificar. Tiene un enlace, lo que significa que hay otra referencia de archivo en el disco en algún lugar que accede a los mismos datos. Por lo tanto, el "contenido de archivo" real en el disco tiene 2 "archivos" que lo hacen referencia. Estos enlaces a menudo se crean usando lnsin suministrar -s.

Entonces:

  • El carácter 1 es el tipo de nodo: comúnmente -o dindicando archivo o directorio.
  • Los caracteres 2, 3, 4 indican read, writo y xejecución para el propietario.
  • Los personajes 5, 6, 7 hacen lo mismo para el grupo.
  • Los personajes 8, 9, 10 hacen lo mismo para los demás.
  • El número de caracteres de permiso subsiguientes indica el número de enlaces si el nodo es un archivo y el número de "subnodos" si el nodo es un directorio.

Ver el capítulo El formato largo de man ls.

sapht
fuente
Como @sapht dijo que el número (para un directorio) al final implica que el número de archivos en un directorio es incorrecto, supongo. Porque tengo miles de archivos en el directorio y todavía muestra 2
VAR121
Nunca he visto un ls que no imprima el recuento de subnodos de directorio con formato largo. ¿En qué sistema operativo / distribución estás? Gnu ls, busybox y darwin imprimen el recuento de nodos. ¿Es realmente un directorio y no otro tipo de nodo?
sapht
Mi distribución (Linux Mint 18.3) no tiene ese capítulo en lsla página de manual de. Ninguno de los campos se explica allí. Creo que es lo mismo para Ubuntu.
bleistift2
5

Para archivos , es el número de enlaces duros al contenido del archivo. 1 significa que no hay enlaces duros (el caso típico), un número N por encima de 1 significa que este y otros nombres de archivo N-1 comparten el mismo contenido.

Para la mayoría de los directorios, pero no todos los sistemas de archivos informan un recuento de enlaces de 2+ N donde N es el número de subdirectorios.

ndemou
fuente
1

[max @ localhost ~] $ ll

total 4

drwxrwxr-x 2 max max 4096 25 de septiembre 17:11 zzz

Aquí 2 significa número de conteo de enlaces

ahora crearé 3 directorios dentro de zzz

ahora el valor cambia a 5

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

[max @ localhost zzz] $ cd

[max @ localhost ~] $ ll

total 4

drwxrwxr-x 5 max max 4096 25 de septiembre 17:16 zzz

Eso es porque ahora 5 directorios están presentes dentro de zzz 3 son a b cy 2 son directorios ocultos. ..

si creo un archivo, no pasará nada para contar el enlace

[max @ localhost zzz] $ toque 1 2 3
[max @ localhost zzz] $ ls -al
total 20
drwxrwxr-x 5 max max 4096 25 de septiembre 17:26. ------> recuento de enlaces del directorio actual
drwx ------ 5 max max 4096 25 de septiembre 17:12 .. ------> conteo de enlaces del directorio principal
-rw-rw-r-- 1 max max 0 25 de septiembre 17:26 1
-rw-rw-r-- 1 max max 0 25 de septiembre 17:26 2
-rw-rw-r-- 1 max max 0 25 de septiembre 17:26 3
drwxrwxr-x 2 max max 4096 25 de septiembre 17:16 a
drwxrwxr-x 2 max max 4096 25 de septiembre 17:16 b
drwxrwxr-x 2 max max 4096 25 de septiembre 17:16 c
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
total 4
drwxrwxr-x 5 max max 4096 25 de septiembre 17:26 zzz

pero si elimino cualquier directorio, el recuento de enlaces cambiará

[max @ localhost zzz] $ rmdir bc
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
total 4
drwxrwxr-x 3 max max 4096 25 de septiembre 17:28 zzz
max
fuente
Muchos (tal vez demasiado) detalles para directorios, ni una palabra para archivos.
ndemou