oracular (7) xattr.7.gz

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⟩.