chattr - zmienia atrybuty plików w linuksowym systemie
plików
chattr [ -RVf ] [ -v wersja ] [
-p projekt ] [ tryb ] pliki...
chattr zmienia atrybuty plików w linuksowym systemie
plików.
Format w trybie symbolicznym ma postać
+-=[aAcCdDeFijmPsStTux].
Operator „+” powoduje dodanie wybranych
atrybutów do istniejących; „-” powoduje
ich usunięcie, a „=” powoduje, że
stają się jedynymi atrybutami jakie posiadają
pliki.
Litery „aAcCdDeFijmPsStTux” oznaczają
wybór nowych atrybutów dla plików: tylko dopisywanie
(a), bez aktualizacji atime (A), kompresja (c), bez
kopiowania przy zapisie (C), bez zrzutów (d),
synchroniczna aktualizacja katalogu (D), format ekstentu (e),
wyszukiwania katalogów niezależne od wielkości
znaków (F), niezmienny (i), dziennik danych (j),
brak kompresji (m), hierarchię projektu (P), bezpieczne
kasowanie (s), synchroniczna aktualizacja (S), brak
łączenia końcówek (t), korzeń
hierarchii katalogów (T), niekasowalność
(u) oraz bezpośredni dostęp do plików
(x)
Następujące atrybuty mają status tylko do
odczytu i mogą zostać wyświetlone przez
lsattr(1), lecz nie są modyfikowalne przez chattr:
zaszyfrowany (E), katalog indeksowany (I), dane
wewnątrz i-węzła (N), zabezpieczenie verity
(V).
Nie wszystkie opcje są obsługiwane i wykorzystywane
przez wszystkie systemy plików. Więcej informacji na ten temat
należy szukać w podręcznikach systemowych danych
systemów plików, takich jak btrfs(5), ext4(5),
mkfs.f2fs(8) i xfs(5).
- -R
- Rekurencyjna zmiana atrybutów katalogów i ich
zawartości.
- -V
- Tryb szczegółowy komunikatów chattr oraz wypisanie
wersji programu.
- -f
- Wyłącza wyświetlanie większości
komunikatów o błędach.
- -v wersja
- Ustawia wersję pliku/numer pokolenia (generation number).
- -p projekt
- Ustawia numer projektu pliku.
- a
- Plik z ustawionym atrybutem a może być otwierany do
zapisu tylko w trybie dopisywania. Jedynie superużytkownik lub
proces posiadający możliwosć CAP_LINUX_IMMUTABLE
może ustawić lub zdjąć ten atrybut.
- A
- Gdy modyfikowany jest plik z ustawionym atrybutem A, jego rekord
atime nie jest zmieniany. Pozwala to uniknąć sporej
ilości dyskowych operacji wejścia/wyjścia w systemach
zainstalowanych na laptopach.
- c
- Plik z ustawionym atrybutem c jest automatycznie kompresowany na
dysku przez jądro. Odczyt tego pliku zwraca zdekompresowane dane.
Zapis do pliku powoduje kompresję danych przed zapisaniem ich na
dysku. Uwaga: proszę zapoznać się z rozdziałem
o błędach i ograniczeniach na końcu niniejszego
dokumentu. Uwaga: w przypadku btrfs, po ustawieniu flagi c nie da
się ustawić flagi C. Występuje też
konflikt z opcją montowania btrfs nodatasum).
- C
- Plik z atrybutem C nie jest przedmiotem aktualizacji kopiowania
przy zapisie. Flaga jest obsługiwana wyłącznie w
systemach przeprowadzających kopiowanie przy zapisie. Uwaga: w
btrfs flaga ta powinna być ustawiana dla pustych i nowych
plików. Jeśli zostanie ustawiona dla pliku mającego
bloki danych, nie jest zdefiniowane, kiedy bloki przypisane do pliku
będą w pełni stabilne. Jeśli flaga jest
ustawiona na katalogu, nie ma wpływu na sam katalog, lecz wszystkie
nowe pliki w nim tworzone będą miały ustawiony
atrybut No_COW. Gdy ustawiona jest flaga C, nie można
ustawić 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
są zapisywane na dysk synchronicznie; jest to równoznaczne z
opcją montowania "dirsync", dotyczącą
określonego zbioru plików.
- e
- Atrybut e wskazuje, że plik używa ekstentów do
mapowania bloków na dysku. Nie może być
usunięty przez chattr(1).
- E
- Plik, katalog lub dowiązanie symboliczne z atrybutem E jest
zaszyfrowany przez system plików. Nie da się go
ustawić ani zresetować za pomocą chattr(1),
choć można go wyświetlić programem
lsattr(1).
- F
- Katalog z ustawionym atrybutem F wskazuje, że wszystkie
wyszukiwania ścieżek wewnątrz niego są
wykonywane bez zwracania uwagi na wielkość znaków.
Atrybut można zmienić wyłącznie w pustych
katalogach, w systemach plików z włączoną
funkcją casefold.
- i
- Plik z atrybutem i nie może być zmieniany: nie
może być kasowany ani nie może być zmieniana
jego nazwa, nie można tworzyć do niego
dowiązań, większość jego metadanych nie
da się zmienić oraz niemożliwe jest otwarcie go w
trybie do zapisu. Jedynie superużytkownik i proces
posiadający możliwość CAP_LINUX_IMMUTABLE
może ustawić lub zdjąć ten atrybut.
- I
- Atrybut I jest używany przez kod h-drzew do wskazania,
że dany katalog jest indeksowany za pomocą haszowanych
drzew. Nie może być ustawiony ani zdjęty przez
chattr(1), choć może być wyświetlony
przez lsattr(1).
- j
- Wszystkie dane z pliku z ustawionym atrybutem j zostaną
zapisane do dziennika ext3 lub ext4 przed zapisaniem ich do pliku, o ile
system plików został zamontowany z opcją
"data=ordered" lub "data=writeback" i posiada
dziennik. Gdy system plików jest zamontowany z opcją
"data=journal", wszystkie dane są zapisywane do
dziennika, więc ten atrybut nie ma znaczenia. Jedynie
superużytkownik i proces posiadający
możliwość CAP_LINUX_IMMUTABLE może
ustawić lub zdjąć ten atrybut.
- m
- Plik z atrybutem m jest nie jest kompresowany w systemach
plików obsługujących kompresję po pliku.
- N
- Plik z atrybutem N wskazuje że plik przechowuje dane
bezpośrednio w i-węźle. Nie da się go
ustawić ani zdjąć za pomocą chattr(1),
choć można go wyświetlić programem
lsattr(1).
- P
- Katalog z ustawionym atrybutem P, będzie wymuszał
hierarchiczną strukturę z identyfikatorem projektu. Pliki i
katalogi utworzone w tym katalogu odziedziczą jego identyfikator
projektu. Ograniczone są operacje zmian nazw - przy przenoszeniu
pliku lub katalogu do innego katalogu identyfikatory projektów
muszą się zgadzać. Dodatkowo dowiązanie twarde
do pliku można utworzyć tylko wówczas, jeśli
identyfikator projektu dla pliku i jego katalogu docelowego są
zgodne.
- s
- Gdy plik z ustawionym atrybutem s zostanie skasowany, jego bloki
zostają wyzerowane i zapisane z powrotem na dysku. Uwaga:
proszę zapoznać się z rozdziałem o
błędach i ograniczeniach na końcu niniejszego
dokumentu.
- S
- Gdy modyfikowany jest plik z ustawionym atrybutem S, zmiany
są zapisywane na dysk synchronicznie; jest to równoznaczne z
opcją montowania "sync", dotyczącą
określonego zbioru plików.
- t
- Plik z atrybutem t nie będzie miał
częściowego fragmentu bloku na końcu pliku
uwspólnionego z innymi plikami (na systemach plików
wspierających łączenie końcówek). Jest
to niezbędne dla programów takich jak LILO, które
dokonują bezpośredniego odczytu z systemu plików i
które nie rozumieją plików o
połączonych końcówkach. Uwaga: w chwili
pisania tego tekstu systemy plików ext2, ext3 i ext4 nie
obsługują (jeszcze, oprócz bardzo eksperymentalnych
łatek) łączenia końcówek.
- T
- Katalog z atrybutem T zostanie uznany za będący na
szczycie hierarchii katalogów na potrzeby alokatora bloków
Orlov. Jest to wskazówka dla alokatora bloków
używanego przez ext3 i ext4, że podkatalogi
znajdujące się poniżej nie są ze sobą
powiązane i dlatego powinny być rozmieszczone w innych
miejscach do celów alokacji. Dobrym pomysłem jest np.
ustawienie atrybutu "T" dla katalogu /home, dzięki czemu
/home/jasiek i /home/marysia będą położone w
oddzielnych grupach bloków. Do katalogów, które nie
mają ustawionego tego atrybutu, alokator bloków Orlov
będzie się starał grupować podkatalogi
bliżej siebie tam, gdzie to będzie możliwe.
- u
- Gdy kasowany jest plik z ustawionym atrybutem u, jego
zawartość zostaje zachowana. Umożliwia to
użytkownikowi odzyskanie takiego pliku. Uwaga: proszę
zapoznać się z rozdziałem o błędach i
ograniczaniach na końcu niniejszego dokumentu.
- x
- Plik z atrybutem x żąda używania trybu
bezpośredniego dostępu (dax), jeśli jądro
obsługuje DAX. Można to przesłonić za
pomocą opcji montowania „dax=never”. Więcej
informacji znajduje się w dokumentacji jądra
dotyczącej dax:
<https://www.kernel.org/doc/html/latest/filesystems/dax.html>.
- Jeśli jest ustawiony na istniejącym katalogu, to zostanie
odziedziczony przez wszystkie nowo utworzone pliki i podkatalogi.
Jeśli istniejący katalog zawierał już
jakieś pliki lub podkatalogi, zmodyfikowanie atrybutu katalogu
nadrzędnego nie zmieni atrybutów tych plików i
podkatalogów.
- V
- Plik z atrybutem V ma włączoną funkcję
verity. Nie da się do niego pisać, a system plików
automatycznie zweryfikuje wszystkie odczyty z niego wobec szyfru
kryptograficznego obejmującego całą
zawartość pliku np. za pomocą drzewa Merkle.
Umożliwia to wydajne uwierzytelnienie pliku. Nie da się go
ustawić ani zresetować za pomocą chattr(1),
choć można go wyświetlić programem
lsattr(1).
chattr został napisany przez Remy'ego Carda
<Remy.Card@linux.org>. Obecnie opiekuje się nim Theodore Ts'o
<tytso@alum.mit.edu>.
Atrybuty c, s i u nie są honorowane
przez kod systemów plików ext2, ext3 i ext4 w obecnej
implementacji jąder Linux z głównej
gałęzi. Ustawienie atrybutów a i i nie ma
wpływu na możliwość zapisu do już
istniejących deskryptorów plików.
Opcja j jest przydatna tylko w systemach plików ext3
i ext4.
Opcja D jest przydatna tylko przy korzystaniu z
jądra Linux w wersji 2.5.19 lub późniejszej.
chattr jest częścią pakietu e2fsprogs
i jest dostępny na stronie http://e2fsprogs.sourceforge.net.
Tłumaczenie niniejszej strony podręcznika: Przemek
Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz
<ankry@green.mf.pg.gda.pl> i 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.