Que signifie «+ 3» en résultat de «ls -al»?

9

Par accident, lors du déplacement vers un volume monté et de la frappe ll(alias pour 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/

J'ai cette partie intéressante: drwxr-x---+ 3

Je comprends la partie drwxr-x---, mais que + 3signifie l'autre partie ?

Ps: j'utilise Ubuntu 16.04 x86

mja
la source
1
Vous voulez dire que vous êtes curieux de savoir le nombre entre la chaîne d'autorisations et le nom du propriétaire?
Byte Commander
4
Pour les parties de ls -lsortie expliquées, voir askubuntu.com/q/710905 , askubuntu.com/q/517229 ou unix.stackexchange.com/q/103114 s'il vous plaît.
Byte Commander

Réponses:

14

L' +après les bits d'autorisation normaux indiquent qu'une autorisation spéciale est en vigueur pour le fichier / répertoire. L'autorisation spéciale est POSIX ACL (Access Control List).

Vous pouvez définir une règle ACL en utilisant setfaclet afficher la ou les règles déjà définies par getfacl.

Exemple:

% 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

Vérifiez man getfaclet man setfaclpour avoir plus d'idée.

En remarque, si vous voyez un .inplace de +, c'est pour le contexte SELINUX.


Et ce qui 3suit +indique le nombre de liens durs du fichier. Un lien dur est un nom pour le fichier (inode du fichier précisément), donc le nombre de liens durs indique le nombre de noms du fichier.

Dans votre cas, l'entrée est:

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

C'est pour le répertoire parent du répertoire courant ( /media/username/DATA), donc ..pointe vers le /media/usernamerépertoire.

Maintenant, sous Linux, chaque répertoire a au moins deux liens durs, l'un est pour .(répertoire actuel, lien vers lui-même) et l'autre est son entrée dans le répertoire parent (mappage nom-inode), cela a été hérité d'Unix.

Vous avez un lien physique de 3 pour /media/username, ce qui signifie qu'il /media/usernamea un sous-répertoire (par défaut 2 plus un pour l' ..entrée du sous-répertoire). S'il y avait 2 sous-répertoires, le nombre de liens matériels serait de 4 en raison du mappage des deux sous-répertoires ..vers le parent.


Vérifiez man lsaussi.

heemayl
la source
1
C'est un répertoire, donc le nombre de liens est le nombre de sous-répertoires plus deux.
Kevin
@Kevin Ajout d'une explication détaillée.
heemayl
7

+à la fin de la chaîne d'autorisations signifie une autorisation ACL ( Access Control List ). Vous pouvez voir exactement quelles autorisations il autorise et à quels utilisateurs

getfacl ../

ou plutôt

getfacl /media/$USER

Dans mon cas:

$ 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::---

Cela montre le propriétaire et le groupe, puis le groupe "utilisateur" (propriétaire) et les autorisations universelles (autres) sans nom avec une entrée supplémentaire pour l'utilisateur zanna. Le "masque" limite les droits effectifs pour les utilisateurs de groupe et nommés.

Les ACL sont une extension du système d'autorisations Linux traditionnel qui permet de définir des autorisations pour un seul utilisateur ou groupe, ce qui permet un contrôle plus fin. Vous pouvez en savoir plus sur les raisons de sécurité pour que root possède ce point de montage et l'utilisation des autorisations ACL /mediadans ce post

Le 3n'est pas lié au +. il indique le nombre de liens durs vers le fichier.

Zanna
la source
2
Cela n'explique +que le, qui signale que les ACL sont actives pour cette entrée en plus des paramètres d'autorisation traditionnels. Cependant, cela n'explique pas le 3.
Byte Commander
2
@ByteCommander hah il ne m'est pas venu à l'esprit qu'ils posaient des questions sur les 3, merci!
Zanna