Команда chattr
(от англ. Change Attribute) предназначена для изменения атрибутов файла или каталога в файловых системах ext2, ext3 или ext4 в Linux. Обычно эта команда используется с правами root
, поскольку она позволяет вносить изменения в системные файлы и каталоги.
В этой статье мы покажем 5 примеров использования утилиты chattr
в Linux.
Содержание:
- Синтаксис команды chattr
- Сделайте файл неизменяемым
- Удалите атрибут файла с помощью chattr
- Запретите создавать новые учетные записи пользователей с помощью chattr
- Разрешите только добавлять новую информацию в файл
- Установите или удалите один атрибут для всего содержимого каталога
- Выводы
Синтаксис команды chattr
Синтаксис команды chattr
имеет следующий вид:
Где:
[options]
— необязательные опции, изменяющие поведение команды;attribute
— один или несколько атрибутов, которые необходимо установить или снять с файла;[filename]
— название файла или директории.
Наиболее часто пользователи работают со следующими атрибутами файлов:
i
— делает файл неизменяемым;a
— разрешает только добавлять новую информацию в файл;s
— гарантирует, что изменения в файле будут немедленно записаны на диск;A
— предотвращает обновление времени доступа к файлу (atime) при его чтении.
Для изменения атрибутов файла используются специальные операторы:
+
— добавляет атрибут;-
— удаляет атрибут;=
— сохраняет существующие атрибуты файлов.
Сделайте файл неизменяемым
Представим, что у нас в файловой системе есть документ sample.txt
, в котором записана важная информация. Нам нужно защитить этот файл от каких-либо изменений. Для этого установим для него атрибут i
:
Чтобы убедиться в том, что мы действительно установили этот атрибут, выполним команду:
Читайте также: Управление пользователями и группами, разрешениями, атрибутами файлов и включение доступа sudo к учетным записям — LFCS часть 8.
Теперь при попытке удаления, переименования, изменения прав доступа или других действий над этим файлом операционная система будет выводить на экран ошибку Operation not permitted:
Удалите атрибут файла с помощью chattr
Допустим, нам по каким-то причинам требуется изменить файл sample.txt
. Для этого сперва нужно удалить атрибут i
, используя следующую команду с оператором -
:
Убедимся, что мы действительно удалили этот атрибут:
Если попробовать удалить файл sample.txt
, то операционная система позволит это сделать:
Запретите создавать новые учетные записи пользователей с помощью chattr
Для создания учетных записей в ОС Linux используется команда useradd
. Она работает с системными файлами /etc/passwd
и /etc/shadow
. Если мы сделаем эти файлы неизменяемыми, то, по сути, ограничим функционал утилиты useradd
, и она больше не сможет добавлять новых пользователей. Например:
При попытке создать новую учетную запись пользователя утилита выдаст ошибку cannot open /etc/passwd:
Читайте также: Курс LFCS — часть 3: архивирование, поиск и настройка атрибутов файлов.
Разрешите только добавлять новую информацию в файл
Допустим, нам нужно разрешить добавлять новые данные в файл sample.txt
, но при этом запретить изменять уже существующую информацию. Чтобы решить такую задачу, установим для документа атрибут a
:
Для примера сначала попробуем перезаписать файл sample.txt
, а потом добавить в конец новую информацию:
Как видно на скриншоте выше, ОС разрешила выполнить только вторую операцию.
Установите или удалите один атрибут для всего содержимого каталога
Бывают ситуации, когда нужно удалить или установить один атрибут для всех файлов и папок в одном каталоге. Для решения этой проблемы у команды chattr
существует параметр -R
. Для примера защитим все содержимое директории Documents
от изменения:
Чтобы удалить атрибут i
со всех файлов и папок каталога Documents
, выполним следующую команду:
Выводы
Мы показали Вам пять простых примеров использования команды chattr
в ОС Linux. С помощью этой утилиты Вы сможете устанавливать и удалять различные атрибуты файлов и каталогов. Надеемся, что эта статья была полезной для Вас!
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы 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.