lsattr wyświetla atrybuty plików na systemach plików z rodziny ext (ext2/ext3/ext4) — czyli te ustawiane wcześniej przez chattr. To te „ukryte” flagi, których nie zobaczysz w zwykłym ls -l, a które potrafią zablokować edycję pliku, wymusić tylko dopisywanie albo zabezpieczyć go przed skasowaniem. Jeśli kiedyś walczyłeś z plikiem, którego nie da się usunąć mimo praw roota — lsattr to pierwsze narzędzie, które powinno trafić do gry. Pochodzi z pakietu e2fsprogs i jest standardem w niemal każdej dystrybucji Linuksa.
Składnia i najważniejsze opcje
Podstawowa składnia wygląda tak: lsattr [opcje] [plik...]. Bez argumentu działa na bieżącym katalogu.
-a— pokazuje wszystkie pliki w katalogu, łącznie z ukrytymi (zaczynającymi się od kropki) oraz.i...-d— traktuje katalogi jak zwykłe pliki: pokazuje atrybuty samego katalogu, a nie jego zawartości.-R— rekursywnie schodzi w głąb katalogów i wypisuje atrybuty całej zawartości.-l— drukuje atrybuty pełnymi nazwami zamiast pojedynczych liter (czytelniej dla człowieka).-p— wyświetla numer projektu pliku (project quota).-v— pokazuje numer wersji/generacji pliku.
Przykłady użycia
lsattr plik.txt— pokazuje atrybuty pojedynczego pliku, np.----i---------e------- plik.txt(literaioznacza immutable).lsattr -d /etc— wyświetla atrybuty samego katalogu/etc, bez listowania jego zawartości.lsattr -a— listuje wszystkie pliki w bieżącym katalogu, łącznie z ukrytymi.lsattr -R /var/log— przechodzi rekursywnie przez cały/var/logi pokazuje atrybuty każdego pliku.lsattr -l plik.txt— to samo co zwykłe wywołanie, ale flagi opisane słowami, np.Immutable, Extents.
Częste błędy i pułapki
lsattr działa tylko na systemach plików ext2/ext3/ext4. Na tmpfs, FAT, NTFS czy często na XFS, Btrfs lub ZFS dostaniesz Inappropriate ioctl for device albo Operation not supported — to nie jest błąd Twojej składni, tylko brak wsparcia dla tych atrybutów. Druga sprawa: lsattr niczego nie zmienia, tylko czyta — do ustawiania flag służy chattr. Jeśli zobaczysz literę i (immutable) lub a (append-only), to właśnie dlatego nie możesz pliku skasować ani nadpisać, nawet jako root. Zdejmiesz to przez chattr -i plik. I nie myl tego z getfacl — to zupełnie inny mechanizm (listy ACL), nie atrybuty ext.
Powiązane komendy: chattr (ustawianie atrybutów), ls (zwykłe listowanie), stat (metadane pliku), getfacl i setfacl (listy kontroli dostępu).