lsattr

Wyświetla atrybuty plików na systemach ext (np. ustawione przez chattr).

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 (litera i oznacza 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/log i 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).