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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.