Combien de bits sont les indicateurs d'access d'un file?

Combien de bits sur un système de files Linux sont pris en count pour les permissions d'un file?

    Pour append aux autres réponses:

    Les permissions Unix traditionnelles sont décomposées en:

    • lire ( r )
    • écrire ( w )
    • exécuter le file / directory d'access ( x )

    Chacun de ceux-ci est stocké comme un bit, où 1 signifie autorisé et 0 signifie non autorisé.

    Par exemple, l'access en lecture seule, typiquement écrit r-- , est stocké en tant que binary 100 ou octal 4 .

    Il existe 3 sets de ces permissions, qui déterminent l'access autorisé pour:

    • le propriétaire du file
    • le groupe du file
    • tous les autres users

    Ils sont tous stockés set dans la même variable, par exemple rw-r----- , ce qui signifie en lecture-écriture pour le propriétaire, en lecture seule pour le groupe, et aucun access pour les autres, est stocké comme 110100000 binary, 640 octal.

    Donc ça fait 9 bits.

    Ensuite, il y a 3 autres bits spéciaux:

    • setuid
    • setgid
    • gluant

    Voir man 1 chmod pour plus de détails.

    Enfin, le type de file est stocké en utilisant 4 bits, par exemple s'il s'agit d'un file normal, d'un directory, d'un canal, d'un périphérique ou autre.

    Ceux-ci sont tous stockés set dans l'inode, et set, il fait 16 bits.

    Quelles permissions? Les permissions de base correspondent à 16 bits; ext2 utilise 32 bits, plus un autre 32 bits pour les drapeaux de file ( chattr(1) ); alors les ACL POSIX utilisent l'espace variable en plus. Voir /usr/include/linux/ext2_fs.h pour plus de détails. (ext3 et ext4 s'appuient sur ext2 et utilisent principalement la même structure.)

    Les informations sur les files sont stockées dans une structure de données appelée un inode. Il existe un champ dans cette structure pour le mode, qui contient les permissions. Ce champ sur mon système est un short non signé de 2 octets et 16 bits.

    Jetez un oeil à fs.h dans la source Linux pour voir par vous-même.