uz
KA
июня 23, 2025
Обновлено июня 23, 2025

Linux: расширенные атрибуты файла в системе

Linux

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

Файловая система – это набор правил или же алгоритм, с помощью которого данные систематизируются и хранятся в определенной форме, чтобы ОС могла обратиться к ним. Она так же регулирует поведение файлов своими атрибутами и позволяет задать определенные параметры, которые могут запретить удаление файлов даже root пользователю! Рассмотрим работу и управление ими в данном материале.

Как работает файловая система?

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

Схема структуры хранения файлов
Скриншот №1 — Схема структуры хранения файлов

При обращении к файлам, пользователь создает системный вызов, который направляется в ядро ОС. Та уже взаимодействует с самой файловой системой, где считывает необходимые ей атрибуты. Их существует два типа: права доступа и флаги поведения. Это по прежнему атрибуты или свойства файла, но каждый из них имеет свою функцию.

Стандартные права доступа rwx, которые вы уже везде видели определяют правила обращения субьектов к обьектам и используются в более верхнеуровневых режимах работы. А флаги поведения, определяют опции, того как будут обрабатываться файлы и работают они на уровне более низком. Поэтому root, при работе с файлом у которого есть флаг -i или же immutable, не сможет удалить или изменить его. Весь список атрибутов перечислен ниже в таблице:

Атрибуты файловой системы
Скриншот №2 — Атрибуты файловой системы

Список достаточно внушительный, поэтому рассмотрим основные способы применения флагов на практике!

Управление атрибутами

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

sudo chattr +a /var/log/auth.log
Назначение атрибута
Скриншот №3 — Назначение атрибута

При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Создание сервераСкриншот №4 — Создание сервера

Просмотреть применился ли атрибут можно через команду:

lsattr  /var/log/auth.log

После чего изменение данных будет невозможно до тех пор, пока пользователь с административными правами не уберет этот атрибут противоположной командой:

sudo chattr -a /var/log/auth.log
Удаление атрибута
Скриншот №5 — Удаление атрибута

Для того, чтобы запретить удаление файла или его изменение пропишем команду и проверим ее работоспособность:

sudo chattr +i /var/log/auth.log && sudo rm /var/log/auth.log
Атрибут запрета на изменение
Скриншот №6 — Атрибут запрета на изменение

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

Так же для файлов можно включить журналирование, оно позволит сохранять список действий с файлами в отдельный журнал. Что поможет при восстановлении целостности самой системы. Однако обычно эту функцию указывают напрямую, при инсталляции файловой системы.

Данные атрибуты позволяют добавить низкоуровневый функционал изменить, который может только администратор. Они превалируют над стандартной системой разграничения доступа, внося изменения глобально для всех пользователей системы. Такое решение полезно, когда нарушитель получил доступ к аккаунту. Который имеет возможность по правам доступа изменять файлы, но это запрещено атрибутом файловой системы, только если это не root.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...