- Руководство по команде lsattr для начинающих
- Команда lsattr
- Q1. Как использовать команду lsattr?
- Q2. Как заставить lsattr работать с каталогами рекурсивно?
- Q3. Как заставить lsattr обращаться с каталогами как с обычными файлами?
- Q4. Как заставить lsattr выводить номера проекта и версии файла?
- Заключение
- Linux.yaroslavl.ru
- Атрибуты Файлов
- Команда Chattr в Linux (атрибуты файлов)
- chattr Синтаксис
- chattr Пример
- Выводы
- Атрибуты файлов в Linux
- Что это такое?
- Как это работает?
- Специальные биты режимов доступа setuid и setgid
- Sticky-бит
Руководство по команде lsattr для начинающих
Оригинал: Linux lsattr Command Tutorial for Beginners (with Examples)
Автор: Himanshu Arora
Дата публикации: 5 сентября 2018 года
Перевод: А. Кривошей
Дата перевода: март 2019 г.
Недавно мы обсуждали команду chattr, которую вы можете использовать для изменения атрибутов файлов в файловой системе Linux. Для вывода списка атрибутов файла есть отдельная команда, названная lsattr. В этом руководстве мы обсудим этот инструмент на нескольких простых для понимания примерах.
Но прежде чем сделать это, необходимо отметить, что все примеры, упомянутые в этой статье, были протестированы на машине с Ubuntu 18.04 LTS.
Команда lsattr
Как уже говорилось в вводной части выше, команда lsattr в Linux выводит список атрибутов файла в stdout. Ниже приводится ее синтаксис:
Вот как man-страница утилиты определяет ее:
lsattr выводит список атрибутов файла в файловой системе EXT2.
Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам хорошее представление о том, как работает команда.
Q1. Как использовать команду lsattr?
Базовое использование довольно просто. Просто выполните ‘lsattr’ без каких-либо параметров командной строки. Конечно, вы должны предоставить в качестве входных данных имя файла.
И вот вывод команды:
В дополнение к ‘e’ (в выводе выше), в выводе может быть несколько других букв. Следующий отрывок (взятый из man-страницы chattr) должен дать вам лучшее представление об их значении:
Буквы «aAcCdDeijPsStTu» выбирают новые атрибуты для файлов: только добавление (a), никаких обновлений (A), сжатый (c), без копирования при записи (C), без дампа (d), синхронные обновления каталогов (D), расширенный формат (e), неизменяемый (i), журналирование данных (j), иерархия проектов (P), безопасное удаление (я), синхронные обновления (S), без объединения (t), корневой каталог (T) и неудаляемый (u).
Следующие атрибуты доступны только для чтения и могут быть перечислены с помощью lsattr (1) но не модифицируются chattr: зашифровано (E), индексированный каталог (I) и встроенные данные (N).
Q2. Как заставить lsattr работать с каталогами рекурсивно?
Это можно сделать с помощью параметра командной строки -R.
Вот вывод приведенной выше команды в моей системе:
Обратите внимание, что если вы хотите отобразить все файлы в каталогах (включая .), используйте параметр командной строки -a.
Q3. Как заставить lsattr обращаться с каталогами как с обычными файлами?
По умолчанию, если вы указываете имя/путь к каталогу в качестве входных данных для lsattr, она создает информацию о файлах, содержащихся в этом каталоге.
Однако, если вы хотите, вы можете заставить lsattr рассматривать каталог как файл и создавать для него информацию об атрибутах файла. Это можно сделать с помощью параметра командной строки -d.
Q4. Как заставить lsattr выводить номера проекта и версии файла?
Это можно сделать с помощью параметров командной строки -p и -v. На следующем скриншоте показаны обе эти опции в действии:
Заключение
Согласен, lsattr может не попасть в категорию наиболее часто используемых команд, но если вы используете chattr, то это команда, которую нужно знать. Здесь мы обсудили большинство параметров командной строки, которые она предлагает. Чтобы узнать больше о команде lsattr, посетите ее man-страницу .
Источник
Linux.yaroslavl.ru
Атрибуты Файлов | ||
---|---|---|
Пред. | Глава 9. Файловая Система Linux | След. |
Атрибуты Файлов
В файловой системе FAT существуют атрибуты файла (arhive, system, hidden). Точно также, файловая система ext2fs тоже имеет атрибуты, правда эти атрибуты отличаются от атрибутов, принятых в FAT. Атрибуты в ext2fs используются очень редко, поэтому мы упоминаем о них только из соображений законченности повествования. Однако, если вас действительно интересует безопасность вашей системы, рекомендуем ознакомиться с этим разделом.
Существует две команды для управления атрибутами файла: lsattr(1) и chattr(1). Как вы наверное догадались, команда lsattr служит для просмотра атрибутов, ну а команда chattr служит для изменения атрибутов. Атрибуты могут быть установлены только для каталогов и обыкновенных файлов. Доступны следующие атрибуты:
A (no Access time): если для файла или каталога установлен такой атрибут, то, при обращении к этому файлу (для чтения или записи), у файла не будет модифицироваться время последнего обращения. Это может быть полезно, например, при работе с файлами и каталогами, к которым очень часто обращаются, открывая их для чтения. Это может несколько разгрузить систему, так как время последнего доступа — это единственный параметр в inode, который изменяется при открытии файла в режиме read-only (только для чтения).
a ( append only): если для файла или каталога установлен такой атрибут, а также этот файл (каталог) допускает запись, то единственная доступная операция записи — это добавление в конец файла (append). В случае каталога это означает, что вы можете только добавлять файлы, но не можете переименовывать или удалять любой существующий файл внутри этого каталога. Только root может устанавливать или очищать этот атрибут.
d (no dump): dump (8) это стандартная для UNIX утилита резервного копирования. Она создает резервную копию любой файловой системы, у которой в файле /etc/fstab значение dump counter установлено в 1 (подробнее смотрите Глава 8. Файловая Система и Точки Монтирования). Если файл или каталог имеет этот атрибут, то он будет игнорирован при создании резервной копии файловой системы. Обратите внимание, что в случае установки атрибута для каталога, под действие атрибута рекурсивно попадают все нижележащие файлы и каталоги.
i ( immutable): файл или каталог с таким атрибутом не может изменяться вообще: то есть, он не может быть переименован, на него не может быть создана ссылка. [20] Также такой файл не может быть удален. Только root может устанавливать или очищать этот атрибут. Обратите внимание, что этот атрибут также предотвращает изменения времени доступа, поэтому вы не должны совместно использовать атрибуты A и i.
s ( secure deletion): при удалении файла, помеченного таким атрибутом, место на диске, которое занимал файл, будет заполнено нулями.
S ( Synchronous mode): если установлен такой атрибут, то все изменения в файл будут записаны немедленно. Попросту говоря, этот атрибут снимает буферизацию записи для этого файла
Возможно имеет смысл установить атрибут 'i' на некоторые жизненно важные системные файлы, чтобы избежать “неожиданностей”. Также, можно проставить атрибут 'A', например, на файлах помощи (man pages): Это предотвратит лишние дисковые операции и даже слегка сэкономит батареи на портативных компьютерах.
[20] Убедитесь, что вы поняли что обозначает “добавить ссылку” на файл или каталог 🙂
Источник
Команда Chattr в Linux (атрибуты файлов)
В Linux атрибуты файла — это свойства метаданных, которые описывают поведение файла. Например, атрибут может указывать, сжат ли файл, или указывать, можно ли удалить файл.
Некоторые атрибуты, такие как неизменяемость, могут быть установлены или очищены, в то время как другие, такие как шифрование, доступны только для чтения и могут быть только просмотрены. Поддержка определенных атрибутов зависит от используемой файловой системы.
В этой статье объясняется, как использовать команду chattr для изменения атрибутов файлов в файловых системах Linux.
chattr Синтаксис
Команда chattr имеет следующую общую форму:
Значение части [OPERATOR] может быть одним из следующих символов:
- + — Оператор «плюс» сообщает chattr о необходимости добавления указанных атрибутов к существующим.
- — — Оператор минус указывает chattr удалить указанные атрибуты из существующих.
- = — Оператор равенства сообщает chattr о необходимости установить указанные атрибуты как единственные.
За оператором следует один или несколько флагов [ATTRIBUTES] которые вы хотите добавить или удалить из атрибутов файла. Ниже приведен список нескольких общих атрибутов и связанных флагов:
- a — если этот атрибут установлен, файл можно открыть только в режиме добавления для записи.
- A — Когда файл с этим установленным атрибутом открыт, его временная запись не изменяется. atime (время доступа) — это время последнего доступа / открытия файла какой-либо командой или приложением.
- e — этот атрибут означает, что файл использует экстенты для сопоставления блоков на диске. Атрибут e нельзя изменить с помощью chattr .
- i — этот атрибут указывает, что файл неизменяемый, что означает, что файл нельзя удалить или переименовать.
Чтобы получить полный список всех атрибутов и флагов файлов, введите в терминале man chattr .
По умолчанию атрибуты файла не сохраняются при копировании файла с помощью таких команд, как cp или rsync .
chattr Пример
Одно из распространенных применений chattr — установка флага неизменяемости для файла или каталога, чтобы пользователи не могли удалить или переименовать файл.
Вы можете просмотреть атрибуты файла с помощью команды lsattr :
Вывод ниже показывает, что установлен только флаг e :
Чтобы сделать файл неизменяемым, добавьте флаг i с оператором + к существующим атрибутам:
Мы используем sudo, потому что только root может изменить неизменяемый флаг.
Подтвердите, что атрибут добавлен:
Чтобы отменить изменения и удалить неизменяемый флаг, используйте оператор — :
С помощью chattr вы можете добавлять или удалять сразу несколько атрибутов. Например, чтобы сделать файл неизменяемым и указать ядру не отслеживать время последнего доступа, вы должны использовать:
Последний оператор, который вы можете использовать, — это оператор = . Например, чтобы установить атрибут e как единственный атрибут, вы должны запустить:
Обратите внимание, что оператор и флаг заключены в кавычки, чтобы избежать интерпретации оболочки символа + .
Выводы
chattr — это инструмент командной строки для изменения атрибутов файлов в файловой системе Linux.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Атрибуты файлов в Linux
Файловую систему (ФС) невозможно представить без такого важного её компонента, как атрибуты файлов. С технической точки зрения такое, конечно же, возможно, однако это было бы абсолютно бессмысленно. Поскольку не отвечало бы даже далеко не самым «строгим» требованиям для обеспечения безопасности, надёжности и масштабируемости. Поскольку вся работа с операционными системами Linux «завязана» на ФС. То становится очевидным то, как важно уметь её (ФС) понимать. Атрибуты файлов — это, образно выражаясь, «язык», на котором «общаются» между собой, собственно ФС и пользователи (особенно системные администраторы) систем Linux.
Что это такое?
Технически это набор из девяти основных битов. Определяющих какие из пользователей обладают правами на чтение, запись. А также запуск файлов для выполнения. Данный набор формирует код, называемый режимом доступа к файлу/каталогу. Первые три бита определяют права доступа для владельца. Следующие — для группы пользователей, к которой относится файл. и последние три бита — права доступа для всех остальных пользователей в системе. На практике это выглядит так:
Этот вывод говорит о том, что файл .mysql_history доступен для чтения и записи только его владельцу — пользователю john. О чём свидетельствуют первые три символа (rw-) в режима доступа. Символ «-», стоящий перед ними — это признак, что это файл, а не каталог, блочное устройство и т. д. Таким образом, ФС на всем понятном языке говорит, что данный файл может быть прочитан или отредактирован только его владельцем (или суперпользователем).
Существует также ещё четыре дополнительных бита. Которые определяют тип самого файла и задаются непосредственно при создании файла. С помощью команды chmod можно менять основные (и некоторые дополнительные) биты режима доступа. Сделать это может только владелец файла или суперпользователь. Просматривать атрибуты (в том числе и режимы доступа) позволяет команда ls. Таким образом, характер поведения ФС, а также распределение доступа и управление им полностью определяется атрибутами файлов. Которые хранит сама ФС — это самодостаточный и универсальный подход.
Как это работает?
Для записи кода режима доступа используется восьмеричная запись чисел. Как уже было отмечено, код доступа содержит три «триады» битов — для пользователя, группы и всех остальных, именно в таком порядке. Битам из первой триады соответствуют значения в восьмеричной записи 400, 200 и 100. Для второй триады (т. е. для группы) — 40, 20 и 10. Наконец, для третьей (все остальные) — 4, 2 и 1. В свою очередь, первому биту в каждой триаде соответствует доступ на чтение (r — «read»). Второму — на запись (w — «write») и третьему — на выполнение, т. е. x — «execute».
В традиционной модели прав доступа UNIX предполагается, что каждый пользователь «заперт» в пределах всего одной категории (триады). Это означает, что для неоднозначной ситуации применяются самые строгие права. Например, право на владение всегда определяется только битами из триады владельца. И никак и никогда группой или другими пользователями.
Установка бита чтения (r) в одной из триад (или во всех) задаёт право открывать данный файл для чтения соответствующим категориям пользователей. Наличие бита записи (w) позволяет изменять файл. При этом возможно его удаление и/или переименование файла, но только в том случае, если заданы соответствующие биты для его родительского каталога, поскольку именно в его записях хранятся имена файлов.
Установка бита запуска позволяет, собственно, запускать файл на выполнение. Такие файлы называются «исполняемыми». Исполняемых файлов существует две разновидности: бинарные — исполняемые центральным процессором, а также сценарии или скрипты, исполняемые командным интерпретатором. В последнем случае это обычный текстовый файл, но для того, чтобы интерпретатор мог определить, с кем «имеет дело», в самое начало таких файлов помещаются специальные инструкции, вроде такой:
В данном примере указывается, что файл является сценарием для выполнения интерпретатором Perl. Вместо perl может быть указан любой другой интерпретатор, например bash или sh.
Когда бит выполнения устанавливается для каталога. То это означает, что в данный каталог разрешён переход, либо разрешён доступ к файлу через данный (транзитом, так сказать) каталог. Но без получения списка подкаталогов и всего содержимого каталога. Для того, чтобы получить содержимое какого-либо каталога. Необходимо, чтобы для него вместе с битом выполнения был установлен также и бит чтения.
Специальные биты режимов доступа setuid и setgid
Очень важное значение в системах Linux имеют биты setuid (бит смены идентификатора пользователя) и setgid (бит смены идентификатора группы). Их назначение в том, чтобы помочь, в определённых ситуациях, программам получить полноценный доступ к каким-либо файлам и/или процессам. Которые по спецификации основного режима доступа недоступны пользователям, от имени которых эти программы запускаются. Битам setuid и setgid в восьмеричной записи соответствуют значения 4000 и 2000. Так что всё это значит? Дело в том, что если для какого-либо файла установлен бит setuid.То какой-либо пользователь (неважно кто) может запускать на исполнение этот файл от имени владельца этого файла. Таким образом работают такие программы как passwd, которую может использовать пользователь для смены своего пароля. Однако исполняемый файл passwd принадлежит суперпользователю root. Естественно, setuid и setgid можно устанавливать командой chmod:
Здесь первая команда устанавливает для файла settings.php бит setuid. Вторая — setgid, третья — оба этих бита сразу.
В выводе команды ls это выглядит так:
Здесь символ «s» в спецификации режима доступа. Говорит о том, что установлен бит setgid (вторая триада). Вместо него может быть символ «S», т. е. заглавная буква, которая говорит о том, что данный бит для этого файла был установлен впервые.
В контексте каталога может устанавливаться бит setgid. В этом случае всем создаваемым внутри этого каталога файлам будут назначаться идентификатор группы этого каталога. А не группы владельца файлов.
Sticky-бит
Этот дополнительный бит служит для того, чтобы внутри каталога, для которого установлен этот бит, удаление и/или переименование файлов могли производить только их владельцы или суперпользователь.
Установить sticky-бит может только суперпользователь, но обычный пользователь-владелец файла может его снять. Sticky-биту соответствует восьмеричное значение 1000, пример:
А в выводе команды ls это будет выглядеть следующим образом:
В данном выводе в спецификации режима доступа символ «T» говорит об установленном sticky-бите. Его представление в виде заглавной и строчной букв имеет то же значение, как и по аналогии с битами setuid и setgid.
В заключении стоит ещё раз отметить то, насколько важно понимать и правильно интерпретировать атрибуты файлов. От этого зависит, насколько корректно и надёжно будет функционировать вся система. Грамотное системное администрирование невозможно без понимания работы ФС, в частности того, что такое атрибуты файлов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник