Управление атрибутами файла (ЗОСРВ «Нейтрино»)
chattr [+|- атрибут]... [имя_файла]...
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита chattr представляет собой интерфейсную часть команды DCMD_FSYS_FILE_FLAGS функции devctl(), определенной в <sys/dcmd_blk.h> и описанной в справочнике по командам Devctl и Ioctl, которая получает и устанавливает атрибуты файла (выходящие за рамки стандарта POSIX). Например, в файловой системе DOS/FAT существует концепция «скрытых» или «системных» файлов. Такие атрибуты обычно сохраняются в виде флагов в индексном дескрипторе каждого файла на диске.
Если утилита chattr вызывается без атрибутов и с именем_файла (или списком имен файлов), то будут отображены текущие установленные атрибуты каждого файла. Если утилита chattr вызывается с атрибутом атрибут (или списком атрибутов), то заданные атрибуты будут применены к каждому файлу.
Атрибуты разделены на следующие классы:
Например, скрытый файл — это общее понятие для имени_файла, которое может быть скрыто от просмотра пользователем (не отображается ls), но остается доступным (например, для использования прикладной программой при вызове функции open()). Представление этой концепции варьируется в зависимости от файловой системы:
Эта функция сопоставления позволяет абстрагировать приложение от конкретной структуры на диске (программа может работать без изменений с любым файлом в любой файловой системе). Многие атрибуты, специфичные для файловой системы, не имеют соответствующей общей концепции, и ими необходимо управлять, зная базовую структуру файловой системы. Различные заголовочные файлы <sys/fs_*.h> содержат соответствующие определения битов.
| Файловая система | Атрибут | Бит | Описание |
|---|---|---|---|
| Generic | backup | FS_FLAGS_BACKUP | Файл был изменен, необходимо создать резервную копию. |
| contiguous | FS_FLAGS_CONTIGUOUS | Нефрагментированный файл. | |
| dirty | FS_FLAGS_DIRTY | Возможно, файловая система находится в несогласованном состоянии. | |
| hidden | FS_FLAGS_HIDDEN | Файл скрыт от обычного просмотра пользователем (не отображается с помощью ls), но остается доступным для open(). | |
| Power-Safe ( fs-qnx6.so) | defrag | QNX6FS_BG_DEFRAG | Фоновая дефрагментация включена. |
| hold | QNX6FS_SNAPSHOT_HOLD | Снапшоты для этого файла заблокированы. | |
| modified | QNX6FS_INO_MODIFIED | Индексный дескриптор был изменен. | |
| snapshot | FS_FLAGS_COMMITTING | Снапшоты включены. | |
| used | QNX6FS_INO_USED | Индексный дескриптор используется. | |
| fs-udf.so | archive | Файл был изменен, и его необходимо создать резервную копию. | |
| nonreloc | Файл невозможно переместить. | ||
| setgid | В файле установлен бит setgid. | ||
| setuid | В файле установлен бит setuid. | ||
| sorted | Каталоги отсортированы. | ||
| sticky | Sticky бит установлен. | ||
| stream | Файл представляет собой именованный поток. | ||
| system | Файл используется исключительно операционной системой и не подлежит изменению или удалению. | ||
| transform | Файл был преобразован (например, сжат). | ||
| fs-dos.so | archive | DOSFS_ARCHIVE | Файл был изменен, и его необходимо создать резервную копию. |
| dir | DOSFS_DIR | Файл является каталогом. | |
| hidden | DOSFS_HIDDEN | Файл скрыт от просмотра. | |
| label | DOSFS_VOLLABEL | Файл представляет собой метку тома. | |
| lcasebase | DOSFS_LCASE_BASE | Базовое имя_файла включает символы нижнего регистра. | |
| lcaseext | DOSFS_LCASE_EXT | Расширение имени_файла включает символы нижнего регистра. | |
| rdonly | DOSFS_RDONLY | Файл доступен только для чтения. | |
| system | DOSFS_SYSTEM | Файл используется исключительно операционной системой и не подлежит изменению или удалению. | |
| fs-nt.so | archive | Файл был изменен, и его необходимо создать резервную копию. | |
| compress | Файл сжат. | ||
| device | Файл представляет собой устройство. | ||
| encrypt | Файл зашифрован. | ||
| hidden | Файл скрыт от просмотра. | ||
| normal | Регулярный файл. | ||
| offline | Актуальный файл хранится удаленно. | ||
| rdonly | Файл доступен только для чтения. | ||
| sparse | Файл разреженный; ненулевые данные размещаются на диске, а длинные строки нулей — нет. | ||
| system | Файл используется исключительно операционной системой и не подлежит изменению или удалению. | ||
| temp | Файл временный. | ||
| fs-mac.so | alias | Файл представляет собой файл алиас - динамическую ссылку на другой файл. | |
| bundle | Файл представляет собой пакет, каталог со стандартизированной иерархией, в котором хранится исполняемый код и все связанные ресурсы. | ||
| desktop | Файл находится на рабочем столе. | ||
| hasicon | У файла есть свой собственный значок. | ||
| hiddenext | Расширение файла скрыто. | ||
| invisible | Файл не отображается в списках диалоговых окон или окнах приложений. | ||
| namelock | Переименовать файл или назначить ему другой значок невозможно. | ||
| stationery | Файл представляет собой блокнот; вы можете использовать его как шаблон для создания новых файлов, но не можете изменять сам файл. |
Вывести атрибуты файла на экран:
# chattr chattr.c chattr.c: +backup +contiguous +used +modified
Добавить и удалить атрибуты файла:
# chattr -archive +system /fs/dos/autoexec.bat /fs/dos/autoexec.bat: -archive +system
Отключение снапшотов для файловой системы Power-Safe ( fs-qnx6.so) (может быть полезно при вызове утилиты chkqnx6fs):
# chattr -snapshot /fs/qnx6 /fs/qnx6: -snapshot
Базовые подсистемы ЗОСРВ «Нейтрино»
ЗОСРВ «Нейтрино» редакции 2024 devb-ahci, devb-eide, devb-loopback, devb-ram, devb-sdmmc, devb-umass, fs-dos.so, fs-mac.so, fs-nt.so, fs-qnx6.so, fs-udf.so, fsysinfo, io-blk.so, DCMD_FSYS_FILE_FLAGS
Предыдущий раздел: Утилиты