CHATTR(1) General Commands Manual CHATTR(1) NAZWA chattr - zmienia atrybuty plikow w linuksowym systemie plikow SKLADNIA chattr [ -RVf ] [ -v wersja ] [ -p projekt ] [ tryb ] pliki... OPIS chattr zmienia atrybuty plikow w linuksowym systemie plikow. Format w trybie symbolicznym ma postac +-=[aAcCdDeFijmPsStTux]. Operator ,,+" powoduje dodanie wybranych atrybutow do istniejacych; ,,-" powoduje ich usuniecie, a ,,=" powoduje, ze staja sie jedynymi atrybutami jakie posiadaja pliki. Litery ,,aAcCdDeFijmPsStTux" oznaczaja wybor nowych atrybutow dla plikow: tylko dopisywanie (a), bez aktualizacji atime (A), kompresja (c), bez kopiowania przy zapisie (C), bez zrzutow (d), synchroniczna aktualizacja katalogu (D), format ekstentu (e), wyszukiwania katalogow niezalezne od wielkosci znakow (F), niezmienny (i), dziennik danych (j), brak kompresji (m), hierarchie projektu (P), bezpieczne kasowanie (s), synchroniczna aktualizacja (S), brak laczenia koncowek (t), korzen hierarchii katalogow (T), niekasowalnosc (u) oraz bezposredni dostep do plikow (x) Nastepujace atrybuty maja status tylko do odczytu i moga zostac wyswietlone przez lsattr(1), lecz nie sa modyfikowalne przez chattr: zaszyfrowany (E), katalog indeksowany (I), dane wewnatrz i-wezla (N), zabezpieczenie verity (V). Nie wszystkie opcje sa obslugiwane i wykorzystywane przez wszystkie systemy plikow. Wiecej informacji na ten temat nalezy szukac w podrecznikach systemowych danych systemow plikow, takich jak btrfs(5), ext4(5), mkfs.f2fs(8) i xfs(5). OPCJE -R Rekurencyjna zmiana atrybutow katalogow i ich zawartosci. -V Tryb szczegolowy komunikatow chattr oraz wypisanie wersji programu. -f Wylacza wyswietlanie wiekszosci komunikatow o bledach. -v wersja Ustawia wersje pliku/numer pokolenia (generation number). -p projekt Ustawia numer projektu pliku. ATRYBUTY a Plik z ustawionym atrybutem a moze byc otwierany do zapisu tylko w trybie dopisywania. Jedynie superuzytkownik lub proces posiadajacy mozliwosc CAP_LINUX_IMMUTABLE moze ustawic lub zdjac ten atrybut. A Gdy modyfikowany jest plik z ustawionym atrybutem A, jego rekord atime nie jest zmieniany. Pozwala to uniknac sporej ilosci dyskowych operacji wejscia/wyjscia w systemach zainstalowanych na laptopach. c Plik z ustawionym atrybutem c jest automatycznie kompresowany na dysku przez jadro. Odczyt tego pliku zwraca zdekompresowane dane. Zapis do pliku powoduje kompresje danych przed zapisaniem ich na dysku. Uwaga: prosze zapoznac sie z rozdzialem o bledach i ograniczeniach na koncu niniejszego dokumentu. Uwaga: w przypadku btrfs, po ustawieniu flagi c nie da sie ustawic flagi C. Wystepuje tez konflikt z opcja montowania btrfs nodatasum). C Plik z atrybutem C nie jest przedmiotem aktualizacji kopiowania przy zapisie. Flaga jest obslugiwana wylacznie w systemach przeprowadzajacych kopiowanie przy zapisie. Uwaga: w btrfs flaga ta powinna byc ustawiana dla pustych i nowych plikow. Jesli zostanie ustawiona dla pliku majacego bloki danych, nie jest zdefiniowane, kiedy bloki przypisane do pliku beda w pelni stabilne. Jesli flaga jest ustawiona na katalogu, nie ma wplywu na sam katalog, lecz wszystkie nowe pliki w nim tworzone beda mialy ustawiony atrybut No_COW. Gdy ustawiona jest flaga C, nie mozna ustawic flagi c. d Plik z ustawionym atrybutem d nie jest kandydatem do archiwizacji, podczas uruchamiania programu dump(8). D Gdy modyfikowany jest katalog z ustawionym atrybutem D, zmiany sa zapisywane na dysk synchronicznie; jest to rownoznaczne z opcja montowania "dirsync", dotyczaca okreslonego zbioru plikow. e Atrybut e wskazuje, ze plik uzywa ekstentow do mapowania blokow na dysku. Nie moze byc usuniety przez chattr(1). E Plik, katalog lub dowiazanie symboliczne z atrybutem E jest zaszyfrowany przez system plikow. Nie da sie go ustawic ani zresetowac za pomoca chattr(1), choc mozna go wyswietlic programem lsattr(1). F Katalog z ustawionym atrybutem F wskazuje, ze wszystkie wyszukiwania sciezek wewnatrz niego sa wykonywane bez zwracania uwagi na wielkosc znakow. Atrybut mozna zmienic wylacznie w pustych katalogach, w systemach plikow z wlaczona funkcja casefold. i Plik z atrybutem i nie moze byc zmieniany: nie moze byc kasowany ani nie moze byc zmieniana jego nazwa, nie mozna tworzyc do niego dowiazan, wiekszosc jego metadanych nie da sie zmienic oraz niemozliwe jest otwarcie go w trybie do zapisu. Jedynie superuzytkownik i proces posiadajacy mozliwosc CAP_LINUX_IMMUTABLE moze ustawic lub zdjac ten atrybut. I Atrybut I jest uzywany przez kod h-drzew do wskazania, ze dany katalog jest indeksowany za pomoca haszowanych drzew. Nie moze byc ustawiony ani zdjety przez chattr(1), choc moze byc wyswietlony przez lsattr(1). j Wszystkie dane z pliku z ustawionym atrybutem j zostana zapisane do dziennika ext3 lub ext4 przed zapisaniem ich do pliku, o ile system plikow zostal zamontowany z opcja "data=ordered" lub "data=writeback" i posiada dziennik. Gdy system plikow jest zamontowany z opcja "data=journal", wszystkie dane sa zapisywane do dziennika, wiec ten atrybut nie ma znaczenia. Jedynie superuzytkownik i proces posiadajacy mozliwosc CAP_LINUX_IMMUTABLE moze ustawic lub zdjac ten atrybut. m Plik z atrybutem m jest nie jest kompresowany w systemach plikow obslugujacych kompresje po pliku. N Plik z atrybutem N wskazuje ze plik przechowuje dane bezposrednio w i-wezle. Nie da sie go ustawic ani zdjac za pomoca chattr(1), choc mozna go wyswietlic programem lsattr(1). P Katalog z ustawionym atrybutem P, bedzie wymuszal hierarchiczna strukture z identyfikatorem projektu. Pliki i katalogi utworzone w tym katalogu odziedzicza jego identyfikator projektu. Ograniczone sa operacje zmian nazw - przy przenoszeniu pliku lub katalogu do innego katalogu identyfikatory projektow musza sie zgadzac. Dodatkowo dowiazanie twarde do pliku mozna utworzyc tylko wowczas, jesli identyfikator projektu dla pliku i jego katalogu docelowego sa zgodne. s Gdy plik z ustawionym atrybutem s zostanie skasowany, jego bloki zostaja wyzerowane i zapisane z powrotem na dysku. Uwaga: prosze zapoznac sie z rozdzialem o bledach i ograniczeniach na koncu niniejszego dokumentu. S Gdy modyfikowany jest plik z ustawionym atrybutem S, zmiany sa zapisywane na dysk synchronicznie; jest to rownoznaczne z opcja montowania "sync", dotyczaca okreslonego zbioru plikow. t Plik z atrybutem t nie bedzie mial czesciowego fragmentu bloku na koncu pliku uwspolnionego z innymi plikami (na systemach plikow wspierajacych laczenie koncowek). Jest to niezbedne dla programow takich jak LILO, ktore dokonuja bezposredniego odczytu z systemu plikow i ktore nie rozumieja plikow o polaczonych koncowkach. Uwaga: w chwili pisania tego tekstu systemy plikow ext2, ext3 i ext4 nie obsluguja (jeszcze, oprocz bardzo eksperymentalnych latek) laczenia koncowek. T Katalog z atrybutem T zostanie uznany za bedacy na szczycie hierarchii katalogow na potrzeby alokatora blokow Orlov. Jest to wskazowka dla alokatora blokow uzywanego przez ext3 i ext4, ze podkatalogi znajdujace sie ponizej nie sa ze soba powiazane i dlatego powinny byc rozmieszczone w innych miejscach do celow alokacji. Dobrym pomyslem jest np. ustawienie atrybutu "T" dla katalogu /home, dzieki czemu /home/jasiek i /home/marysia beda polozone w oddzielnych grupach blokow. Do katalogow, ktore nie maja ustawionego tego atrybutu, alokator blokow Orlov bedzie sie staral grupowac podkatalogi blizej siebie tam, gdzie to bedzie mozliwe. u Gdy kasowany jest plik z ustawionym atrybutem u, jego zawartosc zostaje zachowana. Umozliwia to uzytkownikowi odzyskanie takiego pliku. Uwaga: prosze zapoznac sie z rozdzialem o bledach i ograniczaniach na koncu niniejszego dokumentu. x Plik z atrybutem x zada uzywania trybu bezposredniego dostepu (dax), jesli jadro obsluguje DAX. Mozna to przeslonic za pomoca opcji montowania ,,dax=never". Wiecej informacji znajduje sie w dokumentacji jadra dotyczacej dax: . Jesli jest ustawiony na istniejacym katalogu, to zostanie odziedziczony przez wszystkie nowo utworzone pliki i podkatalogi. Jesli istniejacy katalog zawieral juz jakies pliki lub podkatalogi, zmodyfikowanie atrybutu katalogu nadrzednego nie zmieni atrybutow tych plikow i podkatalogow. V Plik z atrybutem V ma wlaczona funkcje verity. Nie da sie do niego pisac, a system plikow automatycznie zweryfikuje wszystkie odczyty z niego wobec szyfru kryptograficznego obejmujacego cala zawartosc pliku np. za pomoca drzewa Merkle. Umozliwia to wydajne uwierzytelnienie pliku. Nie da sie go ustawic ani zresetowac za pomoca chattr(1), choc mozna go wyswietlic programem lsattr(1). AUTOR chattr zostal napisany przez Remy'ego Carda . Obecnie opiekuje sie nim Theodore Ts'o . BLEDY I OGRANICZENIA Atrybuty c, s i u nie sa honorowane przez kod systemow plikow ext2, ext3 i ext4 w obecnej implementacji jader Linux z glownej galezi. Ustawienie atrybutow a i i nie ma wplywu na mozliwosc zapisu do juz istniejacych deskryptorow plikow. Opcja j jest przydatna tylko w systemach plikow ext3 i ext4. Opcja D jest przydatna tylko przy korzystaniu z jadra Linux w wersji 2.5.19 lub pozniejszej. DOSTEPNOSC chattr jest czescia pakietu e2fsprogs i jest dostepny na stronie http://e2fsprogs.sourceforge.net. ZOBACZ TAKZE lsattr(1), btrfs(5), ext4(5), mkfs.f2fs(8), xfs(5). TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Andrzej Krzysztofowicz i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . E2fsprogs wersja 1.47.0 luty 2023 CHATTR(1)