xattr(7)

NUME
xattr - atribute extinse

DESCRIERE
Atributele extinse sunt perechi nume:valoare asociate permanent cu fișiere și directoare, similar cu șirurile de medii asociate unui proces. Un atribut poate fi definit sau nedefinit. În cazul în care este definit, valoarea sa poate fi goală sau nu.

Atributele extinse sunt extensii ale atributelor normale care sunt asociate cu toate nodurile din sistem (adică datele stat(2)). Ele sunt adesea utilizate pentru a oferi funcționalitate suplimentară unui sistem de fișiere, de exemplu, caracteristicile suplimentare de securitate, cum ar fi listele de control al accesului (ACL), pot fi implementate utilizând atribute extinse.

Utilizatorii cu acces de căutare la un fișier sau director pot utiliza listxattr(2) pentru a obține o listă de nume de atribute definite pentru acel fișier sau director.

Atributele extinse sunt accesate ca obiecte atomice. Citirea (getxattr(2)) recuperează întreaga valoare a unui atribut și o stochează într-o memorie tampon. Scrierea (setxattr(2)) înlocuiește orice valoare anterioară cu noua valoare.

Spațiul consumat pentru atributele extinse poate fi luat în calcul pentru cotele de disc ale proprietarului și grupului de fișiere.

  Spații de nume de atribute extinse
Numele atributelor sunt șiruri de caractere cu terminație nulă. Numele atributului este întotdeauna specificat în forma complet calificată spațiu-nume.atribut, de exemplu, user.mime_type, trusted.md5sum, system.posix_acl_access sau security.selinux.

Mecanismul de spațiu de nume este utilizat pentru a defini diferite clase de atribute extinse. Aceste clase diferite există din mai multe motive; de exemplu, permisiunile și capacitățile necesare pentru manipularea atributelor extinse dintr-un spațiu de nume pot fi diferite de cele din alt spațiu de nume.

În prezent, clasele de atribute extinse security (securitate), system (sistem), trusted (încredere) și user (utilizator) sunt definite după cum se descrie mai jos. În viitor se pot adăuga clase suplimentare.

  Atribute de securitate extinse
Spațiul de nume al atributelor de securitate este utilizat de modulele de securitate ale nucleului, cum ar fi Security Enhanced Linux, și, de asemenea, pentru a implementa capacitățile fișierelor (a se vedea capabilities(7)). Permisiunile de acces în citire și scriere la atributele de securitate depind de politica implementată pentru fiecare atribut de securitate de către modulul de securitate. Atunci când nu este încărcat niciun modul de securitate, toate procesele au acces în citire la atributele de securitate extinse, iar accesul în scriere este limitat la procesele care au capacitatea CAP_SYS_ADMIN.

  Atribute extinse ale sistemului
Atributele extinse ale sistemului sunt utilizate de nucleu pentru a stoca obiecte de sistem, cum ar fi listele de control al accesului. Permisiunile de acces în citire și scriere la atributele de sistem depind de politica implementată pentru fiecare atribut de sistem implementat de sistemele de fișiere din nucleu.

  Atribute extinse de încredere
Atributele extinse de încredere sunt vizibile și accesibile numai proceselor care au capacitatea CAP_SYS_ADMIN. Atributele din această clasă sunt utilizate pentru a implementa mecanisme în spațiul utilizatorului (adică în afara nucleului) care păstrează informații în atributele extinse la care procesele obișnuite nu ar trebui să aibă acces.

  Atribute extinse de utilizator
Atributele extinse de utilizator pot fi atribuite fișierelor și directoarelor pentru a stoca informații suplimentare arbitrare, cum ar fi tipul mime, setul de caractere sau codificarea unui fișier. Permisiunile de acces pentru atributele utilizatorului sunt definite de biții de permisiune de fișier: este necesară permisiunea de citire pentru a prelua valoarea atributului, iar permisiunea de scriere este necesară pentru a o modifica.

Biții de permisiune de fișier din fișierele și directoarele obișnuite sunt interpretați diferit de biții de permisiune de fișier din fișierele speciale și legăturile simbolice. În cazul fișierelor și directoarelor obișnuite, biții de permisiune de fișier definesc accesul la conținutul fișierului, în timp ce în cazul fișierelor speciale de dispozitiv, aceștia definesc accesul la dispozitivul descris de fișierul special. Permisiunile de fișier ale legăturilor simbolice nu sunt utilizate în cadrul verificărilor de acces. Aceste diferențe ar permite utilizatorilor să consume resursele sistemului de fișiere într-un mod care nu poate fi controlat de cotele de disc pentru fișierele și directoarele speciale inscriptibile în grup sau în lume.

Din acest motiv, atributele extinse de utilizator sunt permise numai pentru fișierele și directoarele obișnuite, iar accesul la atributele extinse de utilizator este restricționat la proprietar și la utilizatorii cu capacități corespunzătoare pentru directoarele cu bitul lipicios activat (a se vedea pagina de manual chmod(1) pentru o explicație a bitului lipicios).

  Diferențe între sistemele de fișiere
Nucleul și sistemul de fișiere pot impune limite asupra numărului și dimensiunii maxime a atributelor extinse care pot fi asociate cu un fișier. Limitele impuse de VFS pentru numele și valorile atributelor sunt de 255 octeți și, respectiv, 64ko. Lista de nume de atribute care pot fi returnate este, de asemenea, limitată la 64ko (a se vedea secțiunea ERORI din listxattr(2)).

Unele sisteme de fișiere, cum ar fi Reiserfs (și, din punct de vedere istoric, ext2 și ext3), necesită ca sistemul de fișiere să fie montat cu opțiunea de montare user_xattr pentru ca atributele extinse ale utilizatorului să poată fi utilizate.

În implementările actuale ale sistemelor de fișiere ext2, ext3 și ext4, numărul total de octeți utilizați de numele și valorile tuturor atributelor extinse ale unui fișier trebuie să se încadreze într-un singur bloc al sistemului de fișiere (1024, 2048 sau 4096 octeți, în funcție de dimensiunea blocului specificată la crearea sistemului de fișiere).

În implementările sistemelor de fișiere Btrfs, XFS și Reiserfs, nu există o limită practică a numărului de atribute extinse asociate cu un fișier, iar algoritmii utilizați pentru a stoca informații despre atributele extinse pe disc sunt scalabili.

În implementările sistemelor de fișiere JFS, XFS și Reiserfs, limita numărului de octeți utilizați într-o valoare EA (de atribute extinse) este plafonul impus de VFS (sistemul de fișiere virtual).

În implementarea sistemului de fișiere Btrfs, numărul total de octeți utilizați pentru nume, valoare și octeți de suprapunere a implementării este limitat la valoarea nodesize a sistemului de fișiere (16ko în mod implicit).

STANDARDE
Atributele extinse nu sunt specificate în POSIX.1, dar unele alte sisteme (de exemplu, BSD și Solaris) oferă o caracteristică similară.

NOTE
Deoarece sistemele de fișiere pe care sunt stocate atributele extinse pot fi utilizate și pe arhitecturi cu o ordine diferită a octeților și o dimensiune diferită a cuvântului mașinii, trebuie să se aibă grijă să se stocheze valorile atributelor într-un format independent de arhitectură.

Această pagină a fost numită anterior attr(5).

CONSULTAȚI ȘI
attr(1), getfattr(1), setfattr(1), getxattr(2), FS_IOC_GETFLAGS(2const), FS_IOC_SETFLAGS(2const), listxattr(2), removexattr(2), setxattr(2), acl(5), capabilities(7), selinux(8)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.