Les attributs de fichier sont un type de métadonnées qui décrivent et peuvent modifier le comportement des fichiers et/ou répertoires d'un système de fichiers . Par exemple, les attributs de fichier peuvent indiquer si un fichier est visible, modifiable, compressé ou chiffré. La disponibilité de la plupart des attributs de fichier dépend de la prise en charge par le système de fichiers sous-jacent (tel que FAT , NTFS ou ext4 ), où les données d'attributs doivent être stockées avec d'autres structures de contrôle. Chaque attribut peut avoir deux états : défini ou effacé. Les attributs sont considérés comme distincts des autres métadonnées, telles que les dates et heures, les extensions de nom de fichier ou les permissions du système de fichiers . Outre les fichiers, les dossiers , les volumes et d'autres objets du système de fichiers peuvent également posséder des attributs.
Unix et systèmes de type Unix, y compris les systèmes conformes à POSIX , chaque fichier possède un « mode » composé de neuf bits contrôlant les permissions de lecture, d'écriture et d'exécution pour son propriétaire, son groupe et tous les autres utilisateurs (voir la section « Permissions Unix traditionnelles » de la documentation relative aux permissions du système de fichiers pour plus de détails), auxquels s'ajoutent les bits setuid et setgid , ainsi qu'un bit de persistance (« sticky ») . Le mode spécifie également le type de fichier (fichier ordinaire, répertoire ou autre type particulier).4.4BSD et dérivés
Dans 4.4BSD et 4.4BSD-Lite , les fichiers et les répertoires (dossiers) acceptaient quatre attributs qui pouvaient être définis par le propriétaire du fichier ou le superutilisateur (les attributs « Utilisateur ») et deux attributs qui ne pouvaient être définis que par le superutilisateur (les attributs « Système ») :
- (Utilisateur) No-dump : Lorsqu'elle est activée, cette option indique que le fichier ou le répertoire ne doit pas être enregistré lors d'une opération de sauvegarde .
- (Utilisateur et système) Immuable : lorsqu’elle est activée, cette propriété indique que le fichier ou le répertoire ne doit pas être modifié. Toute tentative d’ouverture du fichier en écriture, de création d’un fichier dans le répertoire, de suppression d’un fichier du répertoire, de renommage d’un fichier dans le répertoire, de renommage du fichier ou du répertoire, ou de suppression du fichier ou du répertoire, échouera et générera une erreur d’autorisation.
- (Utilisateur et système) Ajout uniquement : lorsqu’elle est activée, cette option indique que le fichier ne doit être modifié qu’en ajoutant des données.
- (Utilisateur) Opaque : Lorsqu'il est défini sur un répertoire, indique que le répertoire est opaque lorsqu'il est visualisé à travers une pile d'union .
FreeBSD a ajouté quelques attributs supplémentaires, également pris en charge par DragonFly BSD :
- (Utilisateur et système) Interdiction de suppression : lorsqu’elle est activée, cette option indique que le fichier ou le répertoire ne doit pas être renommé ni supprimé. Toute tentative de renommage ou de suppression du fichier ou du répertoire échouera et générera une erreur d’autorisation.
FreeBSD prend également en charge :
- (Système) No-archivage : Lorsqu'elle est activée, cette option indique que le fichier ou le répertoire ne doit pas être archivé.
- (Système) Instantané : lorsqu’il est activé, cet attribut indique que le fichier ou le répertoire est un instantané. Cet attribut est géré par le système et ne peut être modifié, même par l’administrateur.
alors que DragonFly BSD prend en charge :
- (Utilisateur et système) Pas d'historique : lorsqu'elle est activée, cette option indique que l'historique ne doit pas être conservé pour le fichier ou le répertoire.
- (Utilisateur) Swapcache : Lorsqu'il est défini, indique que les données propres du système de fichiers pour le fichier, ou pour le répertoire et tout ce qui se trouve sous le répertoire, doivent être mises en cache dans l'espace d'échange sur un disque SSD .
- (Système) Swapcache : Lorsqu'il est activé, indique que les données propres du système de fichiers pour le fichier, ou pour le répertoire et tout ce qui se trouve sous le répertoire, ne doivent pas être mises en cache dans l'espace d'échange sur un disque SSD.
- (Système) Archivé : Lorsqu'il est activé, indique que le fichier ou le répertoire peut être archivé.
NetBSD a ajouté un autre attribut, également pris en charge par OpenBSD :
- (Système) Archivé : Lorsqu'il est activé, indique que le fichier ou le répertoire est archivé.
macOS a ajouté trois attributs :
- (Utilisateur) Caché : Lorsqu'il est activé, indique que le fichier ou le répertoire ne doit pas, par défaut, être affiché dans l'interface graphique ; la commande ls l'affichera cependant.
- (Système) Restreint : Lorsqu'elle est activée, cette option indique que le fichier ou le répertoire sera protégé par la protection de l'intégrité du système.
- (Utilisateur et système) Compressé : attribut en lecture seule pour les fichiers compressés à l’aide de la compression HFS+ .
Dans ces systèmes, la chflagscommande permet de modifier les attributs d'un fichier et la lscommande permet de les afficher. Pour modifier un attribut « utilisateur » d'un fichier dans les systèmes d'exploitation dérivés de 4.4BSD, l'utilisateur doit être le propriétaire du fichier ou le superutilisateur ; pour modifier un attribut « système », l'utilisateur doit être le superutilisateur.
Linux
The Linux operating system can support a wide range of file attributes that can be listed by the lsattr command and modified, where possible, by the chattr command. Programs can examine and alter attributes using ioctl operations.
Many Linux file systems support only a limited set of attributes, and none of them support every attribute that chattr can change. File systems that support at least some attributes include ext4, XFS and btrfs.
| Attribute | lsattr flag | filled with zeroes. | |
|---|---|---|---|
| Synchronous updates | S | +S,-S | Changes are written synchronously to the underlying filesystem storage medium; equivalent to 'sync' mount option for affected files. |
OpenSolaris and derivatives
Support for "system attributes" (in which the operating system defines the meaning, unlike general extended file attributes) was added to OpenSolaris in 2007 in support of the CIFS server. It has been carried forward from there into both the Oracle Solaris 11 releases and the open source illumos project.
In this implementation, a wide range of attributes can be set via the chmod command and listed by the ls command. Programs can examine and alter attributes using the getattrat and setattrat functions.
Currently the ZFS file system supports all defined attributes, and starting in Oracle Solaris 11.2, the tmpfs file system supports a subset of attributes.
| Attribute | Compact flag for DOS et Microsoft Windows , les fichiers et les dossiers acceptaient quatre attributs :
Au fur et à mesure que de nouvelles versions de Windows sont sorties, Microsoft a ajouté à l'inventaire des attributs disponibles sur le système de fichiers NTFS , y compris, mais sans s'y limiter :
Parmi les autres attributs affichés dans la colonne « Attributs » de l’Explorateur Windows on trouve :
Sous DOS, OS/2 et Windows, la |
|---|