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

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

ПрограммыMacOSFreeBSDterminalUbuntuLinuxТрюки BashНастройкиБезопасность

Я уже писал о правах на файлы в 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 – полезные ключи и примеры использования

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