Provided by: manpages-pl_4.23.1-1_all bug

NAZWA

       xattr - atrybuty rozszerzone

OPIS

       Atrybuty  rozszerzone  są  parami  nazwa:wartość związanymi na stałe z plikami i katalogami, podobnie jak
       zmienne środowiskowe są powiązane z procesami. Atrybut może być zdefiniowany lub  niezdefiniowany.  Jeśli
       jest zdefiniowany, jego wartość może być pusta lub niepusta.

       Atrybuty  rozszerzone  są  rozszerzeniem  zwykłych  atrybutów, które są związane z wszystkimi i-węzłami w
       systemie (tj. danymi stat(2)). Są często używane do zapewnienia dodatkowych funkcji w systemie  plików  —
       przy  użyciu atrybutów rozszerzonych mogą być zaimplementowane na przykład dodatkowe funkcje związanych z
       bezpieczeństwem, takie jak listy kontroli dostępu (Access Control Lists - ACLs).

       Użytkownicy z prawem przeszukiwania do pliku lub katalogu mogą użyć listxattr(2) do pobrania  listy  nazw
       atrybutów zdefiniowanych dla danego pliku lub katalogu.

       Dostęp  do  atrybutów  rozszerzonych  następuje jako do obiektów niepodzielnych. Odczytanie (getxattr(2))
       pobiera całą wartość atrybutu i przechowuje  go  w  buforze.  Zapis  (setxattr(2))  zastępuje  poprzednią
       wartość nową wartością.

       Przestrzeń zajęta przez atrybuty rozszerzone może liczyć się do przydziałów dyskowych właściciela pliku i
       grupy pliku.

   Przestrzenie nazw atrybutów rozszerzonych
       Nazwy  atrybutów są łańcuchami ograniczonymi znakiem null. Nazwę atrybutu określa się zawsze jako nazwę w
       pełni   kwalifikowalną   w   postaci   przestrzeń-nazw.atrybut,   np.   user.mime_type,   trusted.md5sum,
       system.posix_acl_access lub security.selinux.

       Mechanizm  przestrzeni nazw służy do definiowania różnych klas atrybutów rozszerzonych. Klasy te istnieją
       z wielu powodów m.in uprawnienia i przywileje wymagane do zmiany atrybutów rozszerzonych mogą różnić  się
       między klasami.

       Obecnie  zdefiniowano  (opisane  poniżej)  następujące  klasy  atrybutów  rozszerzonych: bezpieczeństwasecurity, systemowesystem, zaufaniatrusted i użytkownikauser.  W  przyszłości  mogą  być  dodane
       kolejne klasy.

   Atrybuty rozszerzone bezpieczeństwa
       Przestrzeń  nazw  atrybutów  rozszerzonych bezpieczeństwa jest wykorzystywana przez moduły bezpieczeństwa
       jądra,  takie  jak  Security  Enhanced  Linux  oraz  do   zaimplementowania   przywilejów   pliku   (zob.
       capabilities(7)).   Uprawnienia   do   odczytu   i   zapisu  atrybutów  bezpieczeństwa  zależą  od  zasad
       zaimplementowanych dla każdego z atrybutów przez moduł bezpieczeństwa.  Jeśli  moduł  bezpieczeństwa  nie
       jest  załadowany, to wszystkie procesy mają prawo odczytu atrybutów rozszerzonych bezpieczeństwa, a prawo
       do zapisu jest ograniczone do procesów z przywilejem CAP_SYS_ADMIN.

   Systemowe atrybuty rozszerzone
       Systemowe atrybuty rozszerzone są używane przez jądro do przechowywania obiektów systemowych  takich  jak
       listy  kontroli  dostępu  (ACL).  Uprawnienia  do  odczytu i zapisu atrybutów systemowych zależą od zasad
       zaimplementowanych dla każdego z atrybutów przez systemy plików w jądrze.

   Atrybuty rozszerzone zaufania
       Atrybuty rozszerzone zaufania są widoczne i dostępne tylko  dla  procesów  z  przywilejem  CAP_SYS_ADMIN.
       Atrybuty  w  tej klasie służą do implementowania mechanizmów w przestrzeni użytkownika (tj. poza jądrem),
       które przechowują informacje w atrybutach rozszerzonych, do  których  zwykłe  procesy  nie  powinny  mieć
       dostępu.

   Atrybuty rozszerzone użytkownika
       Atrybuty  rozszerzone  użytkownika mogą być przypisane plikom i katalogom w celu przechowywania dowolnych
       informacji, takich jak: typ mime, zestaw znaków lub kodowanie pliku. Uprawnienia do dostępu do  atrybutów
       użytkownika  są zdefiniowane w bitach uprawnień pliku: do pobrania atrybutu potrzebne jest uprawnienie do
       odczytu, a do jego zmiany wymagane jest uprawnienie do zapisu.

       Bity uprawnień zwykłych plików i katalogów są interpretowane w odmienny sposób od bitów uprawnień  plików
       specjalnych  i  dowiązań  symbolicznych.  W  przypadku  zwykłych plików i katalogów, bity uprawnień pliku
       definiują dostęp do zawartości pliku, natomiast w przypadku plików specjalnych urządzeń definiują  dostęp
       do  urządzenia opisanego plikiem specjalnym. Uprawnienia pliku dowiązań symbolicznych nie są używane przy
       sprawdzaniu dostępu. Różnice te, w przypadku katalogów i plików specjalnych dostępnych do  zapisu  grupom
       lub  wszystkim, mogłyby pozwolić użytkownikom na używanie zasobów systemu plików w sposób niekontrolowany
       przez przydziały dyskowe.

       Z tego powodu, atrybuty rozszerzone  użytkownika  są  dozwolone  tylko  w  przypadku  zwykłych  plików  i
       katalogów,  a  dostęp  do  atrybutów  rozszerzonych  użytkownika  jest ograniczony do właściciela oraz, w
       przypadku katalogów z ustawionym  bitem  lepkości,  użytkownika  z  odpowiednim  przywilejem  (opis  bitu
       lepkości znajduje się w podręczniku chmod(1)).

   Różnice wynikające z systemów plików
       Jądro  oraz  system  plików  może  nałożyć limit maksymalnej liczby oraz rozmiaru atrybutów rozszerzonych
       jakie można przypisać do pliku. Limitami wynikającymi z linuksowego wirtualnego systemu plików (VFS)  są:
       w  przypadku  nazw  atrybutów  –  255  bajtów, w przypadku wartości – 64 kB. Rozmiar zwracanej listy nazw
       atrybutów jest  natomiast ograniczony do 64 kB (zob. USTERKI w listxattr(2)).

       Część systemów plików, takich jak Reiserfs (i historycznie ext2 oraz ext3)  wymaga  zamontowania  systemu
       plików z opcją montowania user_xattr, aby móc korzystać z atrybutów rozszerzonych przez użytkownika.

       W aktualnych implementacjach systemów plików ext2, ext3 i ext4 całkowita przestrzeń używana przez nazwy i
       wartości  wszystkich  atrybutów  rozszerzonych pliku musi zmieścić się w pojedynczym bloku systemu plików
       (jest to wartość 1024, 2048 lub 4096 bajtów, w zależności od rozmiaru bloku podanego w momencie tworzenia
       systemu plików).

       W implementacjach systemów plików Btrfs, XFS i Reiserfs nie istnieje praktyczny  limit  liczby  atrybutów
       rozszerzonych  przypisanych  do  pliku,  a  algorytmy  używane  do przechowywania informacji o atrybutach
       rozszerzonych na dysku są skalowalne.

       W implementacjach systemów plików JFS, XFS i Reiserfs, ograniczenie bajtów użytych w  wartości  atrybutów
       rozszerzonych, wynika wyłącznie z limitu narzuconego przez VFS.

       W  implementacji  systemu  plików Btrfs, całkowity rozmiar w bajtach używany przez nazwę, wartość i bajty
       narzutu implementacji jest ograniczony do wartości rozmiaru  węzła  nodesize  systemu  plików  (domyślnie
       16 kB).

STANDARDY

       Atrybuty  rozszerzone  nie  są  określone  normą  POSIX.1,  lecz niektóre inne systemy (np. systemy BSD i
       Solaris) udostępniają podobną funkcjonalność.

UWAGI

       Ze względu na to, że systemy plików w których przechowywane  są  atrybuty  systemowe,  mogą  być  również
       używane  na  architekturach  z różną kolejnością bajtów oraz z różnym rozmiarem słowa maszynowego, należy
       zwrócić uwagę, aby przechowywać wartości atrybutów w formacie niezależnym od architektury.

       Niniejszy podręcznik nosił wcześniej nazwę attr(5).

ZOBACZ TAKŻE

       attr(1),  getfattr(1),   setfattr(1),   getxattr(2),   ioctl_iflags(2),   listxattr(2),   removexattr(2),
       setxattr(2), acl(5), capabilities(7), selinux(8)

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.8                              2 maja 2024 r.                                         xattr(7)