Linux что значит перед файлом

Атрибуты файлов в Linux

Атрибуты файлов в файловых системах Linux

У каждого файла имеется определённый набор свойств в файловой системе. Например, это права доступа, владелец, имя, метки времени. В Linux каждый файл имеет довольно много свойств, например, права доступа устанавливаются трижды (для владельца, группы и всех прочих), метки времени также бывают трёх разных видов (время создание, доступа и изменения).

Часть свойств файлов в текущей директории можно посмотреть командой:

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Пример свойств одного из файлов:

При этом свойства файла не нужно путать с метаданными. Метаданные — это та информация, которая хранится в самом файле независимо от файловой системы. А свойства файла специфичны для файловой системы и могут быть потеряны, например, при переносе файла из файловой системы EXT4 в NTFS некоторые свойства файла (например, права доступа или метки времени) будут потеряны по той причине, что файловая система NTFS их не поддерживает.

Смотрите также:

Пользователи Linux обычно в курсе режимов доступа к файлам, подробнее о них смотрите в статье «Азы работы в командной строке Linux (часть 6)». Но файлам и директориям могут быть установлены атрибуты, о которы помнят далеко не все пользователи. Именно файловым атрибутам, а также утилитам для установления и считывания файловых атрибутов посвящена данная статья.

Файловые атрибуты могут использовать администраторы и пользователи для защиты файлов от случайных удалений и изменений, а также их применяют злоумышленники, делая невозможным удаление вредоносного файла.

Список файловых атрибутов в Linux

Различают следующие виды расширенных атрибутов.

Файл с установленным атрибутом «a» можно открыть только в режиме добавления для записи. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может установить или очистить этот атрибут.

При доступе к файлу с установленным атрибутом «A» его запись atime не изменяется. Это позволяет избежать определённого количества дисковых операций ввода-вывода для портативных систем.

Файл с установленным атрибутом «c» автоматически сжимается на диске ядром. При чтении из этого файла возвращаются несжатые данные. Запись в этот файл сжимает данные перед их сохранением на диске. Примечание: обязательно прочтите об ошибках и ограничениях в конце этого раздела. (Примечание: для btrfs: если установлен флаг «c», то нельзя установить флаг «C». Также конфликтует с параметром монтирования btrfs «nodatasum»)

Файл с установленным атрибутом «C» не подлежит обновлению «копирование при записи». Этот флаг поддерживается только в файловых системах, которые выполняют копирование при записи. (Примечание: для btrfs флаг «C» должен быть установлен для новых или пустых файлов. Если он установлен для файла, который уже имеет блоки данных, он не определён, когда блоки, назначенные файлу, будут полностью стабильными. Если для каталога установлен флаг «C», он не повлияет на каталог, но для новых файлов, созданных в этом каталоге, будет установлен атрибут No_COW. Если установлен флаг «C», то флаг «c» не может быть установлен. установленный.)

Файл с установленным атрибутом «d» не является кандидатом для резервного копирования при запуске программы dump.

При изменении каталога с установленным атрибутом «D» изменения синхронно записываются на диск; это эквивалентно опции монтирования dirsync, применяемой к подмножеству файлов.

Атрибут «e» указывает, что файл использует экстенты для отображения блоков на диске. Его нельзя удалить с помощью chattr.

Файл, каталог или символическая ссылка с установленным атрибутом «E» зашифрованы файловой системой. Этот атрибут нельзя установить или сбросить с помощью chattr, хотя он может быть отображён с помощью lsattr.

Директория с установленным атрибутом «F» указывает, что все поиски путей внутри этого каталога выполняются без учёта регистра. Этот атрибут можно изменить только в пустых каталогах в файловых системах с включённой функцией casefold.

Файл с атрибутом «i» не может быть изменён: его нельзя удалить или переименовать, нельзя создать ссылку на этот файл, большую часть метаданных файла нельзя изменить, и файл нельзя открыть в режиме записи. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может установить или очистить этот атрибут.

Атрибут «I» используется кодом htree, чтобы указать, что каталог индексируется с использованием хешированных деревьев. Его нельзя установить или очистить с помощью chattr, хотя его можно отобразить с помощью lsattr.

Файл с атрибутом «j» имеет все данные, записанные в журнал ext3 или ext4 перед записью в сам файл, если файловая система смонтирована с параметрами «data=ordered» или «data=writeback» и файловая система имеет журнал. Если файловая система смонтирована с параметром «data=journal», все данные файла уже занесены в журнал, и этот атрибут не действует. Только суперпользователь или процесс, обладающий возможностью CAP_SYS_RESOURCE, может установить или очистить этот атрибут.

Файл с атрибутом «m» исключается из сжатия в файловых системах, которые поддерживают сжатие файлов.

Файл с установленным атрибутом «N» указывает, что файл содержит данные, хранящиеся внутри самого inode. Его нельзя установить или очистить с помощью chattr, хотя его можно отобразить с помощью lsattr.

Директория с установленным атрибутом «P» будет обеспечивать иерархическую структуру для идентификаторов проектов. Это означает, что файлы и каталоги, созданные в директории, будут наследовать идентификатор проекта каталога, операции переименования ограничены, поэтому, когда файл или каталог перемещается в другой каталог, идентификаторы проекта должны совпадать. Кроме того, жёсткая ссылка на файл может быть создана только в том случае, если идентификатор проекта для файла и целевой каталог совпадают.

Когда файл с установленным атрибутом «s» удаляется, его блоки обнуляются и записываются обратно на диск. Примечание: обязательно прочтите об ошибках и ограничениях в конце этого раздела.

При изменении файла с установленным атрибутом «S» изменения синхронно записываются на диск; это эквивалентно опции монтирования «sync», применяемой к подмножеству файлов.

Файл с атрибутом «t» не будет иметь фрагмент частичного блока в конце файла, объединённого с другими файлами (для тех файловых систем, которые поддерживают объединение хвостов).

Это необходимо для таких приложений, как LILO, которые читают файловую систему напрямую и не понимают файлы с хвостовым слиянием. Примечание. На момент написания этой статьи файловые системы ext2, ext3 и ext4 не поддерживают слияние хвостов.

Директория с атрибутом «T» будет считаться вершиной иерархии каталогов для целей распределителя блоков Орлова. Это подсказка распределителю блоков, используемому ext3 и ext4, что подкаталоги в этом каталоге не связаны и, следовательно, должны быть разделены для целей распределения. Например, очень хорошая идея установить атрибут «T» в каталоге /home, чтобы /home/john и /home/mary были помещены в отдельные группы блоков. Для каталогов, где этот атрибут не установлен, распределитель блоков Орлова будет пытаться сгруппировать подкаталоги ближе друг к другу, где это возможно.

Когда файл с установленным атрибутом «u» удаляется, его содержимое сохраняется. Это позволяет пользователю запрашивать его восстановление. Примечание: обязательно прочтите об ошибках и ограничениях в конце этого раздел.

Атрибут «x» может быть установлен для каталога или файла. Если атрибут установлен в существующем каталоге, он будет унаследован всеми файлами и подкаталогами, которые впоследствии будут созданы в каталоге. Если существующий каталог содержал некоторые файлы и подкаталоги, изменение атрибута в родительском каталоге не изменяет атрибуты этих файлов и подкаталогов.

Для файла с установленным атрибутом «V» включена функция проверки подлинности. Он не может быть записан, и файловая система будет автоматически проверять все данные, считанные из неё, по криптографическому хешу, который покрывает всё содержимое файла, например через дерево Меркла. Это позволяет эффективно аутентифицировать файл. Этот атрибут нельзя установить или сбросить с помощью chattr, хотя он может быть отображён с помощью lsattr.

Можно ещё вспомнить липкий бит (sticky bit), суть которого в том, что файл с данным битом может удалить только тот пользователь, который является владельцем файла. Липкий бит устанавливается с помощью программы chmod:

Но к рассматриваемым файловым параметрам липкий бит не имеет отношения.

Ошибки и ограничения

Атрибуты «c», «s» и «u» не поддерживаются файловыми системами ext2, ext3 и ext4, как это реализовано в текущих основных ядрах Linux. Установка атрибутов «a» и «i» не повлияет на возможность записи в уже существующие файловые дескрипторы.

Параметр «j» полезен только для файловых систем ext3 и ext4.

Параметр «D» полезен только в ядре Linux 2.5.19 и новее.

chattr — программа для установки и изменения файловых атрибутов

chattr изменяет атрибуты файлов в файловой системе Linux.

Формат символьного режима: +-=[aAcCdDeFijmPsStTux].

Оператор «+» вызывает добавление выбранных атрибутов к существующим атрибутам файлов; «» заставляет их удалить; и «=» делает их единственными атрибутами файлов.

Буквы «aAcCdDeFijmPsStTux» выбирают новые атрибуты для файлов:

Следующие атрибуты доступны только для чтения и могут быть перечислены lsattr, но не могут быть изменены chattr:

Не все флаги поддерживаются или используются всеми файловыми системами; обратитесь к страницам руководства, относящимся к файловым системам, таким как btrfs, ext4 и xfs для получения дополнительных сведений о файловых системах.

Следующая команда сделает файл test.txt заблокированным для удаления, изменения, перемещения (i):

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Причём даже добавление sudo к командам удаления и перемещения не поможет, этот файл будет невозможно изменить и удалить до тех пор, пока не будет удалён атрибут «i».

Смотрите также: Что такое sudo

Следующая команда удаляет атрибут «i»:

Если в качестве цели изменения параметров вы выбрали директории, то опция -R сделает так, что атрибуты будут рекурсивно изменены и для содержимого директорий.

chattr является частью пакета e2fsprogs и доступна по адресу http://e2fsprogs.sourceforge.net, хотя в большинстве дистрибутивов Linux этот пакет уже предустановлен по умолчанию.

lsattr — программа для показа атрибутов файлов в файловой системе Linux

lsattr перечисляет атрибуты файлов в файловой системе Linux.

Для просмотра файловых атрибутов укажите имя файлов:

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Рекурсивный список атрибутов директорий и их содержимого.

Перечислить все файлы в каталогах, включая файлы, начинающиеся с «.».

Список каталогов как и других файлов, а не их содержимое.

Печатать параметры, используя длинные имена вместо односимвольных сокращений.

Источник

Глава 3. Служебные символы

Служебные символы, используемые в текстах сценариев.

Комментарии могут располагаться и в конце строки с исполняемым кодом.

Комментариям могут предшествовать пробелы (пробел, табуляция).

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Само собой разумеется, экранированный символ # в операторе echo не воспринимается как начало комментария. Более того, он может использоваться в операциях подстановки параметров и в константных числовых выражениях.

Кавычки » ‘ и \ экранируют действие символа #.

В операциях поиска по шаблону символ # так же не воспринимается как начало комментария.

Разделитель команд. [Точка-с-запятой] Позволяет записывать две и более команд в одной строке.

Следует отметить, что символ » ; » иногда так же как и # необходимо экранировать.

Символ точка довольно часто используется для обозначения каталога назначения в операциях копирования/перемещения файлов.

Более детальному рассмотрению темы экранирования посвящена Глава 5.

Разделитель, используемый в указании пути к каталогам и файлам. [слэш] Отделяет элементы пути к каталогам и файлам (например /home/bozo/projects/Makefile).

пустая команда. [двоеточие] Это эквивалент операции «NOP» ( no op, нет операции). Может рассматриваться как синоним встроенной команды true. Команда » : » так же является встроенной командой Bash, которая всегда возвращает «true» ( 0 ).

Символ-заполнитель в условном операторе if/then:

Как символ-заполнитель в операциях, которые предполагают наличие двух операндов, см. Пример 8-2 и параметры по-умолчанию.

Как символ-заполнитель для оператора вложенного документа. См. Пример 17-9.

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Вышеизложенное применимо только к обычным файлам и неприменимо к конвейерам, символическим ссылкам и другим специальным файлам.

символ-шаблон. [звездочка] Символ * служит «шаблоном» для подстановки в имена файлов. Одиночный символ * означает любое имя файла в заданном каталоге.

В регулярных выражениях токен * представляет любое количество (в том числе и 0) символов.

арифметический оператор. В арифметических выражениях символ * обозначает операцию умножения.

end-of-line (конец строки). В регулярных выражениях, символ «$» обозначает конец строки.

группа команд.

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Переменные, создаваемые в дочернем процессе не видны в «родительском» сценарии. Родительский процесс-сценарий, не может обращаться к переменным, создаваемым в дочернем процессе.

инициализация массивов.

Фигурные скобки.

Команда интерпретируется как список команд, разделенных точкой с запятой, с вариациями, представленными в фигурных скобках. [1] При интерпретации имен файлов (подстановка) используются параметры, заключенные в фигурные скобки.

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Использование неэкранированных или неокавыченных пробелов внутри фигурных скобок недопустимо.

file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C

Код, заключенный в фигурные скобки, может выполнять перенаправление ввода-вывода.

Пример 3-1. Вложенные блоки и перенаправление ввода-вывода

Пример 3-2. Сохранение результата исполнения вложенного блока в файл

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом
Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

test.

Проверка истинности выражения, заключенного в квадратные скобки [ ]. Примечательно, что [ является частью встроенной команды test (и ее синонимом), И не имеет никакого отношения к «внешней» утилите /usr/bin/test.

test.

Проверка истинности выражения, заключенного между [[ ]] (зарезервированное слово интерпретатора).

элемент массива.

При работе с массивами в квадратных скобках указывается порядковый номер того элемента массива, к которому производится обращение.

диапазон символов.

двойные круглые скобки.

Конструкция scriptname >filename перенаправляет вывод scriptname в файл filename. Если файл filename уже существовал, то его прежнее содержимое будет утеряно.

Конструкция command &>filename перенаправляет вывод команды command, как со stdout, так и с stderr, в файл filename.

Конструкция command >&2 перенаправляет вывод со stdout на stderr.

Конструкция scriptname >>filename добавляет вывод scriptname к файлу filename. Если задано имя несуществующего файла, то он создается.

(command)>

перенаправление ввода на встроенный документ.

bash$ grep ‘\ ‘ textfile

конвейер. Передает вывод предыдущей команды на ввод следующей или на вход командного интерпретатора shell. Этот метод часто используется для связывания последовательности команд в единую цепочку.

В конвейер могут объединяться и сценарии на языке командной оболочки.

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Если одна из команд в конвейере завершается аварийно, то это приводит к аварийному завершению работы всего конвейера.

принудительное перенаправление, даже если установлен ключ noclobber option.

логическая операция OR (логическое ИЛИ). В опрециях проверки условий, оператор || возвращает 0 (success), если один из операндов имеет значение true (ИСТИНА).

В сценариях команды, и даже циклы могут запускаться в фоновом режиме.

Пример 3-3. Запуск цикла в фоновом режиме

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Команда, исполняемая в пределах сценария в фоне, может подвесить сценарий, ожидая нажатия клавиши. К счастью, это легко «лечится».

Логическая операция AND (логическое И). В операциях проверки условий, оператор && возвращает 0 (success) тогда, и только тогда, когда оба операнда имеют значение true (ИСТИНА).

префикс ключа. С этого символа начинаются опциональные ключи команд.

перенаправление из/в stdin или stdout. [дефис]

В случае, когда ожидается имя файла, тогда «-» перенаправляет вывод на stdout (вспомните пример с tar cf) или принимает ввод с stdin.

Сама по себе команда file без параметров завершается с сообщением об ошибке.

Добавим символ «-» и получим более полезный результат. Это заставит командный интерпретатор ожидать ввода от пользователя.

Теперь команда принимает ввод пользователя со stdin и анализирует его.

Используя передачу stdout по конвейеру другим командам, можно выполнять довольно эффектные трюки, например вставка строк в начало файла.

И наконец пример использования служебного символа «-« с командой tar.

Пример 3-4. Резервное архивирование всех файлов, которые были изменены в течение последних суток

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом
Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Не путайте оператор «-» (предыдущего рабочего каталога) с оператором «-» (переназначения). Еще раз напомню, что интерпретация символа «-» зависит от контекста, в котором он употребляется.

Минус. Знак минус в арифметических операциях.

В зависимости от контекста применения, символ » = » может выступать в качестве оператора сравнения.

Плюс. Оператор сложения в арифметических операциях.

В зависимости от контекста применения, символ + может выступать как оператор регулярного выражения.

Ключ (опция). Дополнительный флаг для ключей (опций) команд.

В зависимости от контекста применения, символ % может выступать в качестве шаблона.

bozo выведет содержимое его домашнего каталога.

/ выведет содержимое домашнего каталога текущего пользователя.

начало-строки. В регулярных выражениях символ «^» задает начало строки текста.

Ctl-C

Завершение выполнения процесса.

Ctl-D

Выход из командного интерпретатора (log out) (аналог команды exit).

«EOF» (признак конца файла). Этот символ может выступать в качестве завершающего при вводе с stdin.

Ctl-G

Ctl-H

Ctl-J

Ctl-L

Перевод формата (очистка экрана (окна) терминала). Аналогична команде clear.

Ctl-M

Ctl-U

Стирание строки ввода.

Ctl-Z

Пустые строки никак не обрабатываются командным интерпретатором и могут свободно использоваться для визуального выделения отдельных блоков сценария.

Примечания

Интерпретатор, встретив фигурные скобки, раскрывает их и возвращает полученный список команд, которые затем и исполняет.

Исключение: блок кода, являющийся частью конвейера, может быть запущен в дочернем процессе (subshell-е).

Источник

Структура файловой системы Linux

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом

Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.

Структура каталогов

Подключение внешних носителей

В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.

Понятие файла

Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.

Принцип установки программ

Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.

Регистр имен

Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.

Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Linux что значит перед файлом. Смотреть фото Linux что значит перед файлом. Смотреть картинку Linux что значит перед файлом. Картинка про Linux что значит перед файлом. Фото Linux что значит перед файлом