xattr(7)
xattr(7)
Namn
xattr - Utökade attribut
Beskrivning
Utökade attribut är namn:värde-par som permanent associeras med filer och kataloger, liknande miljövariabler som är associerade med en process. Ett attribut kan vara definierat eller odefinierat. Om det är definierat kan dess värde vara tomt eller icke-tomt.
Utökade attribut är en utökning av de normala attribut som är associerade med alla inoder i systemet (t.ex. data från stat(2)). De används ofta för att tillhandahålla extra funktionalitet för ett filsystem—exempelvis kan ytterligare säkerhetsfunktioner som åtkomstkontrollistor (ACL) implementeras med hjälp av utökade attribut.
Användare med sökbehörighet till en fil eller katalog kan använda listxattr(2) för att hämta en lista med attributnamn som är definierade för den filen eller katalogen.
Utökade attribut hanteras som atomära objekt. Läsa (med getxattr(2)) hämtar hela värdet av ett attribut och lagrar det i en buffert. Skriva (med setxattr(2)) ersätter tidigare värde med det nya värdet.
Utrymmet som används för utökade attribut kan räknas in i disk-kvoter för filens ägare och grupp.
Namnrymder för utökade attribut
Attributnamn är strängar som avslutas med null-tecken. Attributnamnet specificeras alltid i formen namespace.attribute, till exempel user.mime_type, trusted.md5sum, system.posix_acl_access eller security.selinux.
Namnrymdsmekanismen används för att definiera olika klasser av utökade attribut. Dessa klasser existerar av olika skäl, exempelvis kan behörigheter och funktioner som krävs för att hantera utökade attribut i en namnrymd skilja sig från en annan.
För närvarande är följande namnrymder definierade: security, system, trusted och user. Fler kan läggas till i framtiden.
Säkerhetsattribut
Namnrymden security används av kärnans säkerhetsmoduler, till exempel Security Enhanced Linux (SELinux), samt för att implementera filkapabiliteter (se capabilities(7)). Läs- och skrivbehörighet till säkerhetsattribut beror på den policy som implementeras för varje attribut av säkerhetsmodulen. När ingen säkerhetsmodul är laddad har alla processer läsbehörighet till dessa attribut, medan skrivbehörighet är begränsad till processer med kapabiliteten CAP_SYS_ADMIN.
Systemattribut
Namnrymden system används av kärnan för att lagra systemobjekt som åtkomstkontrollistor (ACL). Läs- och skrivbehörighet till systemattribut beror på den policy som implementeras av filsystemet i kärnan.
Betrodda attribut
Namnrymden trusted är synlig och tillgänglig endast för processer med kapabiliteten CAP_SYS_ADMIN. Attribut i denna klass används för att implementera mekanismer i användarutrymmet som lagrar information i utökade attribut som vanliga processer inte bör ha åtkomst till.
Användarattribut
Namnrymden user kan användas för att tilldela filer och kataloger godtycklig ytterligare information, exempelvis MIME-typ, teckenkodning eller filens kodning. Behörigheter för användarattribut definieras av filens behörighetsbitar: läsbehörighet krävs för att hämta attributvärdet och skrivbehörighet krävs för att ändra det.
För vanliga filer och kataloger definierar behörighetsbitarna åtkomst till filens innehåll. För specialfiler definierar de åtkomst till den enhet som beskrivs av specialfilen. Behörigheterna för symboliska länkar används inte vid åtkomstkontroller.
För att undvika resursförbrukning som inte kan kontrolleras med disk-kvoter, tillåts användarattribut endast för vanliga filer och kataloger. Åtkomst till användarattribut är också begränsad till filens ägare och användare med lämpliga kapabiliteter för kataloger med sticky-biten (se chmod(1)).
Skillnader mellan filsystem
Kärnan och filsystemet kan sätta gränser för det maximala antalet och storleken på utökade attribut som kan associeras med en fil. VFS sätter gränser på 255 byte för namn och 64 kB för värden. Listan med attributnamn som kan returneras är också begränsad till 64 kB (se BUGS i listxattr(2)).
Vissa filsystem, som ReiserFS (och historiskt sett ext2 och ext3), kräver monteringsalternativet user_xattr för att använda användarattribut.
I ext2-, ext3- och ext4-implementationer måste de totala bytena som används av attributens namn och värden få plats i ett enda filsystemblock (1024, 2048 eller 4096 byte beroende på blockstorleken).
I Btrfs-, XFS- och ReiserFS-implementationer finns det inga praktiska begränsningar för antalet utökade attribut som kan associeras med en fil, och algoritmerna för att lagra attributen på disk är skalbara.
I JFS-, XFS- och ReiserFS-implementationer är gränsen för attributvärden de gränser som ställs av VFS.
För Btrfs är de totala bytena som används för namn, värde och implementeringskostnad begränsade till filsystemets nodstorlek (vanligtvis 16 kB).
Standarder
Utökade attribut är inte specificerade i POSIX.1, men liknande funktioner tillhandahålls på vissa andra system (t.ex. BSD och Solaris).
Noteringar
Eftersom filsystem som lagrar utökade attribut kan användas på arkitekturer med olika byteordning och ordstorlek, bör attributvärden lagras i ett arkitekturoberoende format.
Denna manual hette tidigare attr(5).
Se även
- 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)
Sidslut
Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man7/xattr.7.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till PC Service som har sponsrat Linux.se med webbhotell.