¿Qué significa "+ 3" en el resultado de 'ls -al'?

9

Accidentalmente, al pasar a un volumen montado y escribir ll(alias para ls -laF)

:/media/username/DATA$ ll
total 153
drwxrwxrwx  1 username username  8192 Sep  1 20:32 ./
drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../
drwxrwxrwx  1 username username 12288 Jul 26 22:29 documents/
drwxrwxrwx  1 username username 16384 Sep  2 02:01 downloads/

Tengo esta parte interesante: drwxr-x---+ 3

Entiendo la parte drwxr-x---, pero ¿qué + 3significa la parte más ?

Ps: estoy usando Ubuntu 16.04 x86

mja
fuente
1
¿Quieres decir que tienes curiosidad sobre el número entre la cadena de permisos y el nombre del propietario?
Byte Commander
44
Para las partes de la ls -lsalida explicadas, consulte askubuntu.com/q/710905 , askubuntu.com/q/517229 o unix.stackexchange.com/q/103114 por favor.
Byte Commander

Respuestas:

14

Los +bits posteriores a los permisos normales indican que un permiso especial está en vigor para el archivo / directorio. El permiso especial es POSIX ACL (Lista de control de acceso).

Puede establecer una regla de ACL usando setfacly ver las reglas ya establecidas por getfacl.

Ejemplo:

% ls -l foo.sh
-rwxrwxr-x 1 foobar foobar 206 Aug 28 02:08 foo.sh

% setfacl -m u:spamegg:x foo.sh

% ls -l foo.sh                
-rwxrwxr-x+ 1 foobar foobar 206 Aug 28 02:08 foo.sh

% getfacl foo.sh
# file: foo.sh
# owner: foobar
# group: foobar
user::rwx
user:spamegg:--x
group::rwx
mask::rwx
other::r-x

Consulta man getfacly man setfaclpara tener más idea.

Como nota al margen, si ve un .lugar +, eso es para el contexto SELINUX.


Y 3después +indica la cantidad de enlaces duros que tiene el archivo. Un enlace duro es un nombre para el archivo (el inodo del archivo con precisión), por lo que el número de enlaces duros indica el número de nombres que tiene el archivo.

En su caso la entrada es:

drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../

Es para el directorio padre del directorio actual ( /media/username/DATA), por lo que ..apunta al /media/usernamedirectorio.

Ahora, en Linux, cada directorio tiene al menos dos enlaces duros, uno es para .(directorio actual, enlace a sí mismo) y el otro es su entrada en el directorio padre (asignación de nombre-inodo), esto fue heredado de Unix.

Tiene un recuento de enlaces rígidos como 3 /media/username, lo que significa que /media/usernametiene un subdirectorio (por defecto 2 más uno para la ..entrada del subdirectorio). Si hubiera 2 subdirectorios, el recuento de enlaces duros sería 4 debido a que ambos subdirectorios se asignan ..nuevamente al padre.


Compruebe man lstambién

heemayl
fuente
1
Es un directorio, por lo que el recuento de enlaces es el número de subdirectorios más dos.
Kevin
@Kevin Se agregó una explicación detallada.
heemayl
7

+al final de la cadena de permisos significa un permiso ACL ( Lista de control de acceso ). Puede ver exactamente qué permisos permite y a qué usuarios con

getfacl ../

o mejor

getfacl /media/$USER

En mi caso:

$ getfacl /media/zanna
getfacl: Removing leading '/' from absolute path names
# file: media/zanna
# owner: root
# group: root
user::rwx
user:zanna:r-x
group::---
mask::r-x
other::---

Esto muestra los permisos del propietario y el grupo y luego el grupo "usuario" sin nombre (propietario) y el mundo (otros) con una entrada adicional para el usuario zanna. La "máscara" limita los derechos efectivos para grupos y usuarios nombrados.

Las ACL son una extensión del sistema de permisos de Linux tradicional que permite establecer permisos para un solo usuario o grupo, lo que permite un control más preciso. Puede leer más sobre las razones de seguridad para tener root propio este punto de montaje y el uso de permisos ACL /mediaen esta publicación

El 3no está relacionado con el +. indica la cantidad de enlaces duros al archivo.

Zanna
fuente
2
Sin +embargo, esto solo explica lo que indica que las ACL están activas para esta entrada además de la configuración de permisos tradicional. Sin embargo, esto no explica el 3.
Byte Commander
2
@ByteCommander ja, no se me ocurrió que preguntaban por los 3, ¡gracias!
Zanna