В операционной системе Linux существует возможность задать различные атрибуты для файла, в том числе сделать его неудаляемым. Установка такого атрибута может быть полезной в случаях, когда нужно сохранить важную информацию и избежать нежелательного удаления файла.
В данной статье мы рассмотрим, как защитить один или несколько файлов от удаления в Linux с помощью утилиты chattr
.
Содержание:
- Что такое атрибуты файла
- Команда chattr в Linux
- Как сделать файл неудаляемым в Linux
- Как сделать все файлы каталога неудаляемыми в Linux
- Команда lsattr в Linux
- Как убрать атрибут файла с помощью chattr
- Выводы
Что такое атрибуты файла
Атрибуты файлов в Linux — это метаданные, которые связаны с файлом и описывают его свойства. Они используются для определения прав доступа к файлу, времени создания, изменения, а также для указания, является ли файл обычным файлом, каталогом, символической ссылкой и т. д. Атрибуты файлов могут быть изменены с помощью команд chmod
и chown
или утилиты chattr
.
Команда chattr в Linux
Утилита chattr
предназначена для управления атрибутами файлов в операционной системе Linux. С помощью этой команды Вы сможете изменять дополнительные метаданные файлов, которые не могут быть изменены обычными способами. Например, установить защиту от удаления, записи, изменения или переименования файлов и так далее. В общей сложности Вы можете задать 22 различных атрибута. Чаще всего используются следующие из них:
a
— позволяет добавлять данные только в конец файла;i
— устанавливает файл как «неизменяемый», что защищает его от любых изменений, в том числе и удаления;c
— настраивает сжатие при записи и декомпрессию при чтении файла в автоматическом режиме;u
— позволяет файлу восстанавливаться из резервной копии (бэкапа) при удалении или перезаписи;h
— скрывает файл и его содержимое от пользователя;p
— устанавливает файл в режим offline, что делает файл доступным для ОС только в определенных условиях (например, при подключении определенного устройства).
В этой статье мы будем использовать атрибут i
.
Как сделать файл неудаляемым в Linux
Для начала создадим файл file.txt
и запишем в него случайную информацию.
Теперь с помощью команды chattr
установим для файла установим атрибут i
. Для этого введем в терминале следующую команду:
Важно: для выполнения команды chattr
нужны привилегии суперпользователя (root
), которые можно предоставить в том числе с помощью команды sudo
.
Чтобы после изменения атрибута сразу увидеть все метаданные файла, напишем вместе с предыдущей командой опцию -V
:
Теперь при попытке удаления файла даже с правами суперпользователя система будет выдавать ошибку:
Читайте также: Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям — LFCS часть 8.
Как сделать все файлы каталога неудаляемыми в Linux
Команда chattr
позволяет пользователям изменять атрибуты сразу нескольких файлов. Например, Вы можете задать атрибут i
одновременно для всех файлов каталога. Для выполнения этой задачи нужно использовать в команде опцию -R
. С ее помощью утилита chattr
рекурсивно изменит атрибуты каталога и его содержимого.
Команда lsattr в Linux
Прежде чем изменить метаданные файла, нужно узнать какие атрибуты для него установлены. Для просмотра атрибутов файла в системе Linux существует команда lsattr
. Вам достаточно написать ее в терминале и указать путь к файлу в качестве аргумента:
Как убрать атрибут файла с помощью chattr
Чтобы удалить значение атрибута файла, нужно немного изменить команду его установки. Знак +
(плюс) заменить символом -
(минус). К примеру:
На скриншоте видно, что атрибут i
был успешно удален. Теперь можно без всяких проблем удалить файл file.txt
:
Если Вы хотите детальнее изучить команду chattr
, рекомендуем просмотреть ее man
-страницу:
Выводы
В статье были рассмотрены различные аспекты работы с командой chattr
. В частности, мы показали установку и удаление атрибута i
, который делает файл неизменяемым и неудаляемым. Его применение может быть полезен для обеспечения безопасности.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.