Неизменяемые файлы в linux

Как создать неизменяемый файл в Linux / MacOS / FreeBSD

Само собой, root может всё (если введёт пару команд), однако, это вполне легальный способ запретить изменение файла.

Я уже писал о правах на файлы в Linux, MacOS и FreeBSD – самых популярных Unix-подобных операционных системах. Там были описаны основные идеи и команды для работы с правами доступа в Linux и т.д. Однако, помимо прав доступа есть ещё и атрибуты файлов. Эти атрибуты отвечают за разные дополнительные возможности использования файлов. Один из них – атрибут иммутабельности (неизменчивости). К примеру, пользователь с высокими привилегиями (например, root) может установить аттрибут иммутабельности на файл командой chattr:

– таким образом файл или директории становятся неизменяемыми. Это, к слову, мы использовали для отключения Zeitgeist (система отслеживания активности пользователя на файловой системе) в Ubuntu. Аналогично установке атрибута, можно его и снять:

chattr +i -R /path/to/directory

При чём, это относится не только к редактированию файлов, но и к удалению (а значит и перемещению). Пример использования:

$ touch 1.txt $ sudo chattr +i 1.txt [sudo] password for user: $ rm 1.txt rm: cannot remove '1.txt': Operation not permitted $ echo Hello >> 1.txt -bash: 1.txt: Operation not permitted $ chattr -i 1.txt chattr: Operation not permitted while setting flags on 1.txt $ sudo chattr -i 1.txt $ echo Hello >> 1.txt $ rm 1.txt 

Изображение Выучи 10 хороших привычек для работы в UNIX от IBM

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

Заметки об обеспечении безопасности в информационных системах. Настройка брендмауэров (фаерволов) на операционных системах Linux, Windows, MacOS, Unix. Новости об интересных уязвимостях в системах, мониторинге использования ресурсов, алертинге подозрительных действий. Работа …

Фото Безопасность

Заметки о настройке различных IT-штуковин. Настройка, допиливание, полировка. Конфигурируем приложения и тюнингуем сервера. Полезные параметры и ключи запуска программ. Увеличиваем скорость, уменьшаем отклик, ускоряем работу и улучшаем результаты работы. Объясняем …

Фото Настройки

Полезные заметки по работе с командной строкой: bash и прочие *sh. Однострочники, скрипты, позволяющие решать большие и малые задачи администрирования и настройки Юникс систем. Zsh для современного MacOS, Bash для …

Читайте также:  Установка apache astra linux

Фото Трюки Bash

Операционная система Linux (Линукс или Лайнакс) во многом похожая на проприетарную Unix. Линукс распространён на серверах, что означает, что изучая её вы улучшаете свой навык администрирования, DevOps и программирования. Открытая …

Фото Linux

Операционная система от компании Canonical на базе операционной системы Debian, предназначенная для начниающих пользователей GNU/Linux. Основные настройки Ubuntu, программ, которые могут на ней запускаться. Знакомство с Линуксом в целом и …

Фото Ubuntu Linux

Команды и инструкции терминала (консоли) Linux, MacOS, Windows и прочих операционных систем. Трюки и особенности командных оболочек, скрипты для администрирования Unix. Программирование и скриптование Windows и Linux, тонкая настройка Macos. …

Фото Терминал/Консоль

Заметки об Операционной Системе FreeBSD (фри бсд). Один из старейших Unix (Юникс), прародитель многих ОС, а также по мнению многих — самая свободная операционная система. Разработан в рамках общего проекта …

Фото FreeBSD

Операционная система для Mac Book, Apple, iPhone, iPad и прочих i-что-то. Построенная на базе Unix, ядро Darwin показало мощь в лице Маков, кастомизмруемость и удобство в Эйр Маках, ценность и …

Фото MacOS

Источник

5 команд chattr, чтобы сделать важные файлы НЕИЗМЕНИМЫМИ (неизменяемыми) в Linux

chattr (Change Attribute) — это утилита командной строки Linux, которая используется для установки/отмены определенных атрибутов файла в системе Linux для защиты от случайного удаления или изменения важных файлов и папок, даже если вы вошли в систему. в качестве пользователя root.

В родных файловых системах Linux, т. е. ext2, ext3, ext4, btrfs и т. д., поддерживаются все флаги, хотя все флаги не будут поддерживаться для всех неродных ФС. Нельзя удалить или изменить файл/папку после того, как атрибуты установлены с помощью команды chattr, даже если у вас есть полные права доступа к ней.

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

Синтаксис чата
# chattr [operator] [flags] [filename]
Атрибуты и флаги

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

  1. Если доступ к файлу осуществляется с установленным атрибутом A, его запись atime не обновляется.
  2. Если файл изменен с установленным атрибутом S, изменения синхронно обновляются на диске.
  3. Файл имеет атрибут a, его можно открыть только в режиме добавления для записи.
  4. Файл установлен с атрибутом ‘i’, не может быть изменен (неизменяемый). Означает, что нельзя переименовывать, создавать символические ссылки, выполнять, запрещать запись, только суперпользователь может отменить установку атрибута.
  5. Файл с атрибутом ‘j’ установлен, вся его информация обновляется в журнале ext3 перед обновлением в самом файле.
  6. Файл установлен с атрибутом t, без слияния хвостов.
  7. Файл с атрибутом ‘d’ больше не будет кандидатом на резервное копирование при запуске процесса создания дампа.
  8. Когда файл с атрибутом «u» удаляется, его данные сохраняются. Это позволяет пользователю запросить его восстановление.
Читайте также:  Arch linux flash install
Оператор
  1. + : добавляет атрибут к существующему атрибуту файлов.
  2. : удаляет атрибут существующего атрибута файлов.
  3. = : сохранить существующие атрибуты файлов.

Здесь мы собираемся продемонстрировать некоторые примеры команд chattr для установки/снятия атрибутов для файла и папки.

1. Как добавить атрибуты к файлам для защиты от удаления

Для демонстрации мы использовали папку demo и файл important_file.conf соответственно. Перед настройкой атрибутов убедитесь, что для существующих файлов установлены какие-либо атрибуты с помощью команды «ls -l». Вы видели результаты? В настоящее время атрибуты не установлены.

[ tecmint]# ls -l total 0 drwxr-xr-x. 2 root root 6 Aug 31 18:02 demo -rwxrwxrwx. 1 root root 0 Aug 31 17:42 important_file.conf

Чтобы установить атрибут, мы используем знак +, а для отмены используем знак с командой chattr. Итак, давайте установим неизменяемый бит для файлов с флагами +i, чтобы никто не мог удалить файл, даже если пользователь root не имеет прав на его удаление.

[ tecmint]# chattr +i demo/ [ tecmint]# chattr +i important_file.conf

Примечание. Неизменяемый бит +i может быть установлен только пользователем с правами суперпользователя (т. е. root) или пользователем с привилегиями sudo. устанавливать.

После установки неизменяемого бита давайте проверим атрибут с помощью команды «lsattr».

[ tecmint]# lsattr ----i----------- ./demo ----i----------- ./important_file.conf

Теперь попытался принудительно удалить, переименовать или изменить разрешения, но это не разрешено, пишет «Операция не разрешена».

[ tecmint]# rm -rf demo/ rm: cannot remove âdemo/â: Operation not permitted
[ tecmint]# mv demo/ demo_alter mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
[ tecmint]# chmod 755 important_file.conf chmod: changing permissions of âimportant_file.confâ: Operation not permitted

2. Как отключить атрибут в файлах

В приведенном выше примере мы видели, как установить атрибут для защиты и предотвращения случайного удаления файлов, здесь, в этом примере, мы увидим, как сбросить (сбросить атрибут) разрешения и позволить сделать файлы изменяемыми или изменяемыми с помощью -i флаг.

[ tecmint]# chattr -i demo/ important_file.conf

После сброса разрешений проверьте неизменность файлов с помощью команды «lsattr».

[ tecmint]# lsattr ---------------- ./demo ---------------- ./important_file.conf

В приведенных выше результатах вы видите, что флаг «-i» удален, это означает, что вы можете безопасно удалить все файлы и папки, находящиеся в папке tecmint.

[ tecmint]# rm -rf * [ tecmint]# ls -l total 0

3. Как защитить файлы /etc/passwd и /etc/shadow

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

[ tecmint]# chattr +i /etc/passwd [ tecmint]# chattr +i /etc/shadow

Теперь попробуйте создать нового системного пользователя, вы получите сообщение об ошибке ‘cannot open /etc/passwd‘.

[ tecmint]# useradd tecmint useradd: cannot open /etc/passwd

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

Читайте также:  Find files using linux

4. Добавить данные без изменения существующих данных в файле

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

[ tecmint]# chattr +a example.txt [ tecmint]# lsattr example.txt -----a---------- example.txt

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

[ tecmint]# chattr -a example.txt

Теперь попробуйте заменить уже существующий контент в файле example.txt, вы получите сообщение об ошибке «Операция не разрешена».

[ tecmint]# echo "replace contain on file." > example.txt -bash: example.txt: Operation not permitted

Теперь попробуйте добавить новый контент в существующий файл example.txt и проверьте его.

[ tecmint]# echo "replace contain on file." >> example.txt
[ tecmint]# cat example.txt Here is the example to test 'a' attribute mean append only. replace contain on file.

5. Как защитить каталоги

Чтобы защитить весь каталог и его файлы, мы используем переключатель «-R» (рекурсивно) с флагом «+i» вместе с полным путем к папке.

[ tecmint]# chattr -R +i myfolder

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

[ tecmint]# rm -rf myfolder/ rm: cannot remove 'myfolder/': Operation not permitted

Чтобы отменить разрешение, мы используем тот же переключатель «-R» (рекурсивно) с флагом «-i» вместе с полным путем к папке.

[ tecmint]# chattr -R -i myfolder

Вот и все! Чтобы узнать больше об атрибутах, флагах и параметрах команды chattr, используйте справочные страницы.

Источник

Оцените статью
Adblock
detector