Поиск по сайту:
Все мужчины одинаковы перед женщиной, которой они восхищаются (Б. Шоу).

Как использовать команду Chattr в Linux (для начинающих)

19.08.2024
Как использовать команду Chattr в Linux (для начинающих)

Chattr — это программа командной строки UNIX, которая поставляется в большинстве дистрибутивов Linux. Роль этой команды заключается в том, чтобы позволить пользователю-администратору устанавливать атрибуты файла, которые налагают ограничения на файлы.

Существует несколько атрибутов файла для разных ролей, таких как атрибут “+i”, который предотвращает переименование, удаление или модификацию файла, и атрибут “+a”, который позволяет добавлять только новое содержимое, а также несколько других, которые будут рассмотрены позже в этом руководстве.

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

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

 

Синтаксис команды Chattr

Команда chattr принимает три аргумента: первый — это параметр, второй — атрибут файла, а третий — путь к файлу, к которому вы хотите применить выбранный атрибут файла.

$ chattr [option] [attribute*] [path/to/file*]

 

При указании атрибута файла вы будете в основном использовать операторы “+” и “-”: оператор “+” добавляет ограничение выбранного атрибута к файлу, в то время как оператор “-” удаляет его. Кроме того, вы используете оператор “=”, чтобы удалить все существующие атрибуты и заменить их выбранными.

Доступными опциями для chattr являются опция “-R” для рекурсивного применения указанного атрибута к каждому файлу в выбранном каталоге, опция “-V” для отображения измененных файлов и опция “-f” для скрытия распространенных ошибок.

Читать  Команда brew не найдена

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

 

Список атрибутов файла для команды Chattr

Ниже приведен список часто используемых chattr атрибутов и их назначения.

  • a: Разрешать добавление нового содержимого только при наложении ограничений на запись, переименование и удаление.
  • A: Запись времени доступа (или atime) заморожена.
  • c: Включает прозрачное сжатие файла в поддерживаемой файловой системе.
  • S: Изменения в файле обновляются синхронно, что обеспечит целостность критически важных данных.
  • i: Включает неизменяемый режим, который позволяет просматривать содержимое файла, но запрещает действия по записи, переименованию, удалению или добавлению.
  • j: Это гарантирует, что изменения сначала будут применены к журналу ext3, а затем к самому файлу.
  • t: Отключите хвостовое слияние.
  • d: Она отклонит процесс создания дампа для выбранного файла, который часто используется для создания резервных копий.
  • u: При случайном удалении файла создается копия файла, которую позже можно восстановить.
  • e: Это атрибут по умолчанию, применяемый ко всем файлам, который указывает, что файловая система использует экстенты для сопоставления местоположения файла на диске.

 

Приведенный выше список содержит несколько атрибутов из полного списка. Чтобы просмотреть весь список, вы можете использовать команду “man chattr”. Однако для новичка этого достаточно, поскольку ваша работа в основном будет вращаться вокруг них. Давайте теперь рассмотрим несколько практических примеров использования этого атрибута.

 

Примените ограничения на запись, переименование и удаление к файлу

Атрибут “+i” делает файл неизменяемым, предотвращая любые модификации, даже пользователем root. В реальной ситуации критически важный файл конфигурации был бы защищен от случайных изменений.

$ sudo chattr +i myfile.txt

 

Читать  Как удалить все файлы каталога в Linux

Вывод:

andreyex@linux: $ sudo chattr +1 myfile.txt   <- Применение ограничения
andreyex@linux:-$ echo "test" > myfile.txt 
bash: myfile.txt: Operation not permitted    <- Выполнение ограниченной задачи
andreyex@linux: $ rm myfile.txt
rm: cannot remove 'myfile.txt': Operation not permitted 
andreyex@linux:-5 my myfile.txt newfile.txt
mv: cannot move 'myfile.txt' to 'newfile.txt': Operation not permitted <- Выполнение ограниченной задачи
andreyex@linux:-$

 

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

 

Снимите ограничения на запись, переименование и удаление файлов

Чтобы снять ограничения, наложенные на файл предыдущим способом, вы можете использовать атрибут “-i”.

$ sudo chattr -i myfile.txt

 

Вывод:

andreyex@linux:-$ sudo chattr -i myfile.txt  <- Снятие ограничения
andreyex@linux:-$ echo "test" > myfile.txt  <- Тестирование ограничения
andreyex@linux: -$ rm myfile.txt    <- Тестирование ограничения
andreyex@linux:-

 

Обратите внимание, что это снимет ограничение только для атрибута “+i”. Если пользователь назначит другой атрибут или несколько атрибутов одновременно, они все равно будут существовать.

 

Применить разрешение только для добавления

Атрибут “+a” очень похож на атрибут “+i» и запрещает действия по записи, переименованию и удалению, но позволяет добавлять новое содержимое в файл. Вы можете применить этот атрибут к файлам журнала, чтобы предотвратить изменения, имеющие обратную силу.

$ sudo chattr +i myfile.txt

 

Вывод:

andreyex@linux: $ sudo chattr +a myfile.txt   <-  Добавление ограничений
andreyex@linux: 5 echo "New content" >> myfile.txt  <-  Добавление разрешения
andreyex@linux: $ echo "Write content" > myfile.txt  <-  Запись запрещена
bash: myfile.txt: Operation not permitted 
andreyex@linux:-5

 

Чтобы восстановить файл в исходное состояние, используйте атрибут “-a”, чтобы снять ограничение только на добавление.

 

Проверьте примененный атрибут к выбранному файлу

Чтобы отслеживать существующие атрибуты или проверять, установлен ли применяемый атрибут, вы можете использовать команду “lsattr”, в которой перечислены все атрибуты, присвоенные выбранному файлу.

$ lsattr myfile.txt

 

Читать  5 практических примеров команды chgrp в Linux

Вывод:

andreyex@linux:-$ lsattr myfile.txt 
----i---------e------- myfile.tx
andreyex@linux:-$

 

Приведенный выше вывод указывает, что файл имеет два атрибута: “i“, что означает неизменяемость файла, и “e“, который является атрибутом по умолчанию, применяемым ко всем файлам.

 

Замените существующий атрибут новым атрибутом

Если к файлу применено несколько атрибутов, но вы хотите заменить их все выбранным, вы можете указать атрибут с помощью оператора “=” для этой задачи.

$ sudo chattr =u myfile.txt

 

Вывод:

andreyex@linux:-$ lsattr myfile.txt 
----i---------e------- myfile.txt
andreyex@linux:-$ sudo chattr =u myfile.txt  <-  Замена существующего атрибута
andreyex@linux:-$ lsattr myfile.txt -
-u-------------------- myfile.txt 
andreyex@linux:-$

 

 

Примените атрибут ко всем файлам в выбранном каталоге

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

$ sudo chattr -RV +u mydir/

 

Вывод:

andreyex@linux:-$ sudo chattr -RV +u mydir/
chattr 1.47.0 (15-Feb-2024)
Flags of mydir/ set as -u------------e-------
Flags of mydir//file3.txt set as -u------------e-------
Flags of mydir//file2.txt set as -u------------e-------
Flags of mydir//filel.txt set as -u------------e-------
Flags of mydir//file5.txt set as -u------------e-------
Flags of mydir//file4.txt set as -u------------e-------
andreyex@linux:-$

 

 

Выводы

В этой статье вы узнали, как использовать команду chattr с различными операторами и атрибутами, а также ее доступные опции. Если у вас есть какие-либо вопросы по теме, не стесняйтесь обращаться к нам через раздел комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
У каждого администратора веб-сайта есть кошмар, о котором он вам…

Спасибо!

Теперь редакторы в курсе.