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

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

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

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

К примеру, пользователь с высокими привилегиями (например, root) может установить аттрибут иммутабельности на файл командой chattr:

chattr +i /path/to/file

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

Аналогично установке атрибута, можно его и снять:

chattr -i /path/to/file

Или же рекурсивно для всех директорий и файлов внутри какой-то директории:

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 

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

Также может быть вам интересно:

«Игра в имитацию» – фильм о жизни Алана Тьюринга

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

Читать »

Команда grep – полезные ключи и примеры использования

У команды "grep" довольно много различных особенностей. особенно, если учесть, что с английского это "решето" – а что может войти в решето , не факт что выйдет!

Читать »
Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

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

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

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

Фото Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Исследователи сумели пройти code-review с реквестами в ядро Linux, заведомо содержащими добавление уязвимостей.

Фото Пользователи и авторизация (логин) в Django, кастомизация пользователя

Пользователи и авторизация (логин) в Django, кастомизация пользователя

В Django есть множество встроенных возможностей, которые позволяют не реализовывать многие классы для стандартных операций. Среди них - авторизация. Django изначально предоставляет пользовательскую систему. Но её можно использовать лучше, чем по умолчанию.

Фото Панель администрирования Django - настройка вида (шаблона)

Панель администрирования Django - настройка вида (шаблона)

Простой способ подключить админку к сайту на Django, как сконфигурировать адмиин-панель, как изменить оформление администрационной панели Django фреймворка.

Фото Панель администрирования Django - подключение, настройка, поиск, фильтрация

Панель администрирования Django - подключение, настройка, поиск, фильтрация

Простой способ подключить админку к сайту на Django, как сконфигурировать адмиин-панель и добавить функциональность поиска, массовых действий, как изменить оформление администраторской панели Django фреймворка.

Фото И снова sudo, и снова "решето"

И снова sudo, и снова "решето"

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