Odpowiedzi:
Atrybuty obsługiwane przez lsattr/ chattrw systemie Linux, a niektóre z nich mogą być przechowywane przez kilka systemów plików (ext2 / 3/4, reiserfs, JFS, OCFS2, btrfs, XFS, nilfs2, hfsplus ...), a nawet kwerendy w CIFS / SMB (w przypadku rozszerzeń POSIX) są flagami. Tylko bity, które można włączyć lub wyłączyć, aby wyłączyć lub włączyć atrybut (taki jak niezmienny lub archiwizować ...). Sposób ich przechowywania jest zależny od systemu plików, ale ogólnie jako rekord 16/32/64-bitowy w i-węźle.
Pełna lista flag znajduje się w rodzimych systemach plików Linux (ext2 / 3/4, btrfs ...), chociaż nie wszystkie flagi dotyczą wszystkich FS, a dla innych nienatywnych FS, Linux próbuje zmapować je na równoważne funkcje w odpowiednim systemie plików. Na przykład flaga symulowalna przechowywana przez OSX w systemach plików HFS + jest odwzorowana na odpowiednią flagę niezmienną w systemie Linux chattr. Jaka flaga jest obsługiwana przez jaki system plików w ogóle nie jest udokumentowany. Często czytanie kodu źródłowego jądra jest jedyną opcją.
Z drugiej strony, rozszerzone atrybuty ustawione w systemie Linux setfattrlub attrw sklepie przechowują więcej niż flagi. Są one również dołączone do pliku i są parami klucz / wartość, które mogą być (zarówno kluczem, jak i wartością) dowolnymi tablicami bajtów (choć z ograniczeniem rozmiaru w niektórych systemach plików).
Kluczem może być na przykład: system.posix_acl_accesslub user.rsync.%stat. Przestrzeń systemnazw jest zarezerwowana dla systemu (nie zmieniłbyś list ACL POSIX za pomocą setfattr, ale więcej setfacl, POSL ACL są po prostu przechowywane jako rozszerzone atrybuty przynajmniej w niektórych systemach plików), podczas gdy userprzestrzeń nazw może być używana przez aplikacje (tutaj rsyncużywa tej --fake-superopcji do przechowywania informacji o własności lub uprawnieniach, gdy nie jesteś superużytkownikiem).
Ponownie, sposób ich przechowywania zależy od systemu plików. Aby uzyskać więcej informacji, zobacz WikiPedia .
lsattr/ chattrdziała dla extsystemów innych niż pliki? Jeśli nie, to jak zmieniłbyś flagi na extsystemach innych niż Linux? Również attrstrona podręcznika mówi, że jest napisany dla XFS (chociaż działa dla mnie ext4). Wczoraj spędziłem dużo czasu na analizowaniu tego, trudno jest uzyskać dobre informacje. Proszę zobaczyć - unix.stackexchange.com/questions/118840/…
lsattr/chattrsą dla flag plików. Nie wszystkie flagi są obsługiwane przez wszystkie systemy plików, na przykład niektóre z nich, takie jak kompresja, nie będą działać na ext4, ale będą działać na btrfs.
reiserfs.
Wszystko zostało ukryte. inodeKiedy zmieniasz plik, faktycznie zmieniasz jego. Do inodeskryptu masz dobre polecenie:
stat --format=%a yourfile
Możesz użyć %variablei zwrócić przydatne zinode
Ale twoja odpowiedź:
xattrjest na MacOS i chattrna Linuxie.
attrpolecenie jest przeznaczone dla systemów plików XFS, równoważne niezależne polecenie dla systemu plików tosetfattr