🐧 Предотвращение случайного удаления или изменения файлов и папок в Linux |

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

Мануал

Иногда я случайно удаляю свои данные через SHIFT+DELETE.

Хуже того, я даже не делаю резервную копию данных перед их удалением.

Если вы похожи в этом плане на меня, вот хорошая новость для вас.

Существует простая, но полезная утилита командной строки под названием «chattr» (сокращение от Change Attribute), которую можно использовать для предотвращения случайного удаления или изменения файлов и папок в Unix-подобных дистрибутивах.

Он применяет/удаляет определенные атрибуты к файлу или папке в вашей системе Linux.

Таким образом, никто не сможет удалять или изменять файлы и папки случайно или преднамеренно, даже как пользователь root.

Звучит круто, не правда ли?

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

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

По умолчанию Chattr доступен в большинстве современных операционных систем Linux.

Так что давайте не будем беспокоиться об установке.

Синтаксис команды chattr по умолчанию:

chattr [operator] [switch] [filename]
У chattr есть следующие операторы.
  • Оператор «+» вызывает добавление выбранных атрибутов к существующим атрибутам файлов.
  • Оператор ‘-‘ заставляет их удалить.
  • Оператор ‘=’ заставляет их быть единственными атрибутами.
Chattr имеет разные атрибуты, а именно – aAcCdDeijsStTu.
Каждая буква применяет определенные атрибуты к файлу.
В этом руководстве мы собираемся обсудить использование двух атрибутов, а именно a, i, которые используются для предотвращения удаления файлов и папок.

Позвольте мне создать файл с именем file.txt в моем текущем каталоге.

$ touch file.txt
или
$ > file.txt

Теперь я собираюсь применить атрибут «i», который сделает файл неизменным.

Это означает, что вы не можете удалять, изменять файл, даже если вы являетесь владельцем файла и пользователем root.

$ sudo chattr +i file.txt
Вы можете проверить атрибуты файла с помощью команды:
$ lsattr file.txt

Вывод:

----i---------e---- file.txt
Теперь попробуйте удалить файл от обычного пользователя или с привилегиями sudo.
$ rm file.txt

Вывод:

rm: cannot remove 'file.txt': Operation not permitted

Позвольте мне попробовать с командой sudo:

$ sudo rm file.txt

Вывод тот же:

rm: cannot remove 'file.txt': Operation not permitted

Давайте попробуем добавить некоторое содержимое в текстовый файл.

$ echo 'Hello World!' >> file.txt

Опять же:

bash: file.txt: Operation not permitted
Даже если вы попытаетесь удалить файл из файлового менеджера в режиме графического интерфейса, вы не сможете это сделать!

Как вы заметили в приведенных выше выводах, мы не можем удалить или изменить файл даже как пользователь root.

Чтобы отозвать атрибуты, просто используйте ключ «-i», как показано ниже.

$ sudo chattr -i file.txt
Теперь неизменный атрибут был удален.
Теперь вы можете изменить или удалить файл по своему усмотрению.
$ echo 'Hello World!' >> file.txt
$ cat file.txt
Hello World!
$ rm file.txt
Точно так же вы можете ограничить каталоги от случайного удаления или изменения, как описано в следующем разделе.

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

Создайте каталог с именем dir1 и файл file.txt внутри этого каталога.

$ mkdir dir1 && touch dir1/file.txt

Теперь сделайте этот каталог и его содержимое (file.txt) неизменным, используя команду:

$ sudo chattr -R +i dir1

Где:

  • -R – рекурсивно сделает dir1 и его содержимое неизменным.
  • + i – делает каталог неизменным.
Теперь попробуйте удалить каталог от обычного пользователя или как пользователь sudo.
$ rm -fr dir1
$ sudo rm -fr dir1

Вы получите следующий вывод:

rm: cannot remove 'dir1/file.txt': Operation not permitted
Попробуйте добавить некоторое содержимое в файл с помощью команды «echo».
Чтобы отозвать атрибуты обратно, запустите:
$ sudo chattr -R -i dir1
Теперь вы можете удалить или изменить содержимое этого каталога, как обычно.

 

Как предотвратить случайное удаление файлов и папок, но разрешить операцию добавления на Linux

Теперь мы знаем, как предотвратить случайное удаление и изменение файлов и папок.

Далее мы собираемся запретить удаление файлов и папок, но разрешить запись файла только в режиме добавления.

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

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

Чтобы установить атрибут добавления режима для файла/каталога, мы делаем следующее:

Для файлов:

$ sudo chattr +a file.txt

Для каталогов: 

$ sudo chattr -R +a dir1

Файл / папка с установленным атрибутом «a» можно открыть только в режиме добавления для записи.

Добавьте некоторое содержимое в файл (ы), чтобы проверить, работает ли это.

$ echo 'Hello World!' >> file.txt
$ echo 'Hello World!' >> dir1/file.txt
Проверьте содержимое файла с помощью команды cat:

$ cat file.txt
$ cat dir1/file.txt

Пример вывода:

Hello World!

Как видите, мы можем добавить содержимое. Э

то означает, что мы можем изменять файлы и папки.

Давайте попробуем удалить файл или папку.

$ rm file.txt

Вывод:

rm: cannot remove 'file.txt': Operation not permitted

Давайте попробуем удалить папку:

$ rm -fr dir1/

Или с sudo:

$ sudo rm -fr dir1/

Вывод:

rm: cannot remove 'dir1/file.txt': Operation not permitted

Чтобы удалить атрибуты, выполните следующие команды:

Для файлов:

$ sudo chattr -R -a file.txt

Для каталогов:

$ sudo chattr -R -a dir1/

Теперь вы можете удалять или изменять файлы и папки как обычно.

Для более подробной информации обратитесь к справочным страницам.

$ man chattr

Заключение

Резервное копирование и защита данных – одна из основных задач системного администратора Linux.

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

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

Chattr может использоваться как дополнительный инструмент для защиты важных системных файлов и данных в вашей системе Linux.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. kakha

    спасибо, всё это очень полезно и буду пользоваться. люблю линукс

    Ответить
    1. cryptoparty автор

      Всегда рады 🙂

      Ответить