Поиск по сайту:
Не путайте: Машины обрабатывают числа, а не символы. Мы измеряем свое понимание (и контроль) степенью арифметизации деятельности. (Алан.Дж.Перлис)

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

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

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

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

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

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

 

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

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

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

 

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

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

Читать  Как управлять базами данных MySQL и пользователями из командной строки

Нравится, не так ли? Теперь давайте узнаем немного больше о некоторых важных атрибутах файла, которые вы в основном будете использовать для установки ограничений с помощью команды 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 с помощью команды scp

Вывод:

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

 

Читать  Выражение последовательности в Bash (Диапазон)

Вывод:

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)
Загрузка...
Поделиться в соц. сетях:



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

девятнадцать − шестнадцать =

**ссылки nofollow

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


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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: