Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Команда Linux chattr

Автор: admin, 18 марта, 2024
Команды

Команда chattr в Linux — команда файловой системы, используемая для изменения атрибутов файла в каталоге.

Команда Linux chattr и примеры её использования

Содержание

  • Цель использования утилиты
  • Синтаксис
  • Параметры
  • Использование в Linux команды chattr
    • Создание файла неизменяемым
    • Открытие файла только в режиме добавления
    • Обеспечение безопасности каталогов
  • Заключение

Цель использования утилиты

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

Синтаксис

$ chattr [-RVf] [-+=aAcCdDeijPsStTuFx] [-p проект] [-v версия] файлы...

Параметры

В начале строки режима должен стоять один из следующих операторов:

+

Добавляет выбранных атрибутов к существующим атрибутам файлов

–

Вызывает удаление выбранных атрибутов

=

Выбранные атрибуты становятся единственными атрибутами, имеющимися в файлах

Список общих атрибутов и связанных с ними флагов, которые можно установить/снять с помощью утилиты:

A set

Запись atime не обновляется

S set

Изменения синхронно обновляются на диске

a set

Файл можно открыть только в режиме добавления для записи

i set

Файл не может быть изменён (неизменяем), только суперпользователь может удалить атрибут

j set

Вся информация о файлах обновляется в журнале перед обновлением самого файла

t set

Слияние хвостов не допускается

d set

При запуске процесса дампа больше нет кандидатов на резервное копирование

u set

Когда такой файл удаляется, его данные сохраняются, что позволяет пользователю запросить его восстановление

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

Различные варианты использования утилиты:

-R

Рекурсивно отображать атрибуты списка каталогов и их содержимого

-V

Отображать версии программы

-a

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

-d

Отображать каталоги как обычные файлы

-v

Отображать номера версии файла

Использование в Linux команды chattr

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

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

Создание файла неизменяемым

Делаем файл test.txt неизменяемым. Никакие операции с этим файлом будут невозможны до тех пор, пока атрибуты файла не будут изменены снова:

oleg@mobile:~/Chattr:$ ls -l
итого 4
-rw-r--r-- 1 oleg users 161 мар 18 14:33 test.txt
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ lsattr
--------------e------- ./test.txt
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ sudo chattr +i test.txt 
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ lsattr 
----i---------e------- ./test.txt
oleg@mobile:~/Chattr:$

Возвращаем атрибуты файла в исходное состояние:

oleg@mobile:~/Chattr:$ sudo chattr -i test.txt 
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ lsattr
--------------e------- ./test.txt
oleg@mobile:~/Chattr:$

Открытие файла только в режиме добавления

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

oleg@mobile:~/Chattr:$ sudo chattr +a test.txt 
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ lsattr
-----a--------e------- ./test.txt
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ cat test.txt 
С неба звёздочка упала в колосистые поля,
oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ echo "С нами Ленина не стало, стойкий Сталин у руля." > test.txt bash: test.txt: Операция не позволена oleg@mobile:~/Chattr:$
oleg@mobile:~/Chattr:$ echo "С нами Ленина не стало, стойкий Сталин у руля." >> test.txt 
oleg@mobile:~/Chattr:$

Смотрим результат:

oleg@mobile:~/Chattr:$ cat test.txt 
С неба звёздочка упала в колосистые поля,
С нами Ленина не стало, стойкий Сталин у руля.
oleg@mobile:~/Chattr:$

Обеспечение безопасности каталогов

С помощью флага +i можно сделать каталог неизменяемым. Добавление флага -R позволяет сделать вызов рекурсивным, а все подкаталоги и файлы в них также станут неизменяемыми:

oleg@mobile:~:$ sudo chattr -R +i Chattr/
oleg@mobile:~:$
oleg@mobile:~:$ rm -rf Chattr/
rm: невозможно удалить 'Chattr/test.txt': Операция не позволена
oleg@mobile:~:$
oleg@mobile:~:$ lsattr Chattr/ 
----i---------e------- Chattr/test.txt
oleg@mobile:~:$
oleg@mobile:~:$ sudo chattr -R -i Chattr/
oleg@mobile:~:$
oleg@mobile:~:$ lsattr Chattr/ 
--------------e------- Chattr/test.txt
oleg@mobile:~:$

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

Заключение

В операционной системе Linux команда chattr, используемая системными администраторами, очень важна. Научиться пользоваться ей достаточно несложно.

Последние материалы

  • Утилита sensors
    1 hour ago
  • Сканер Rkhunter
    1 week ago
  • Программа resize2fs
    1 week 6 days ago
  • Аудиопроигрыватель QMMP
    2 weeks 4 days ago
  • Программа Timeshift
    3 weeks 3 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru