Много раз, Linux-машина используется разными пользователями.
Таким образом, есть вероятность, что эти пользователи обращаются к общему набору файлов.
Это открывает двери для таких проблем, как случайное удаление или редактирование важных файлов, то, что вы, как администратор, определенно не захотите.
К счастью, существует команда – chaptr – разработанная, чтобы помочь вам в конкретных сценариях.
В этом уроке мы обсудим этот инструмент, используя несколько простых для понимания примеров.
Но прежде чем мы это сделаем, стоит упомянуть, что все примеры здесь были протестированы на Ubuntu 16.04 LTS.
Команда Linux chattr
В основном команда chattr используется для изменения атрибутов файлов в файловой системе Linux.
Ниже приводится его синтаксис:
chattr [ -RVf ] [ -v version ] [ mode ] files…
И вот что говорит man об этой утилите:
chattr changes the file attributes on a Linux file system. The format of a symbolic mode is +-=[aAcCdDeijsStTu]. The operator '+' causes the selected attributes to be added to the existing attributes of the files; '-' causes them to be removed; and '=' causes them to be the only attributes that the files have. The letters 'aAcCdDeijsStTu' select the new attributes for the files: append only (a), no atime updates (A), compressed (c), no copy on write (C), no dump (d), synchronous directory updates (D), extent format (e), immutable (i), data journalling (j), secure deletion (s), synchronous updates (S), no tail-merging (t), top of directory hierarchy (T), and undeletable (u). The following attributes are read-only, and may be listed by lsattr(1) but not modified by chattr: compression error (E), huge file (h), indexed directory (I), inline data (N), compression raw access (X), and compressed dirty file (Z). Not all flags are supported or utilized by all filesystems; refer to filesystem-specific man pages such as btrfs(5), ext4(5), and xfs(5) for more filesystem-specific details.
Ниже приведены примеры Вопрос/ Ответ которые должны дать вам представление о том, как работает команда chattr.
В1. Как использовать команду chattr?
Предположим, вы хотите сделать файл доступным только для чтения.
Итак, все, что вам нужно сделать, – запустить команду chattr с опцией + i и именем файла в качестве ввода.
Например:
chattr -i test.txt
Примечание. Как вы уже заметили, для использования команды chattr необходимо иметь права root.
В2. Как удалить ограничение только на чтение, наложенное chattr?
Это просто – все, что вам нужно сделать, это использовать опцию -i вместо + i.
Например:
chattr -i test.txt
Таким образом, вы можете увидеть, что коэффициент только для чтения был удален с опцией -i.
В3. Как предоставить доступ только к файлу с привилегией append-only?
Иногда вам может потребоваться не полное ограничение файла.
Я имею в виду, что вы можете предоставить пользователям доступ только к файлам, чтобы добавить новую информацию, но существующая информация не может быть удалена или отредактирована.
Это также возможно, используя chattr через опцию + a.
chattr +a test.txt
Таким образом, вы можете видеть, что мы могли бы добавить в файл сейчас что-либо, но не могли редактировать существующую информацию в файле, а также удалять файл.
Чтобы отменить это поведение, просто используйте параметр -a.
chattr -a test.txt
В4. Как применить ограничение, используя chattr для всех файлов в каталоге?
Это можно сделать, используя флаг -R, который позволяет рекурсивно изменять атрибуты каталогов и их содержимого.
Например, если вы хотите сделать все файлы внутри каталога test-dir доступными только для чтения, используйте команду chattr следующим образом:
chattr -R +i ./test-dir/
В5. Как проверить атрибуты chattr, применяемые к файлам?
До сих пор, чтобы проверить, был ли атрибут chattr успешно применен, мы попытались выполнить такие операции, как редактирование файла или его удаление.
Но есть отдельная команда, которая позволяет вам легко увидеть, были ли применены атрибуты или нет.
Эта команда является lsattr.
lsattr [FILENAME]
Вы, скорее всего, согласитесь, что chattr является обязательным инструментом командной строки, если вы являетесь системным администратором или управляете пользователями на машине Linux в целом.
Эффективное использование команды может сэкономить вам много хлопот.
Эта статья должна быть достаточной, чтобы вы только начали работу с этой командой.
После того, как вы практиковали приведенные здесь примеры, перейдите на страницу руководства инструмента, чтобы узнать больше.