Сложнее всего было придумать название к статье %) Спойлер — не получилось.
В общем, думаю, вы сталкивались с ситуацией, когда бэкапы делаются в какой-нибудь /mnt/backup, потом по какой-то причине он не смонтировался/отмонтировался (будь то сетевая ФС или отвалившийся диск), после чего скрипт бэкапа забивает всё место в корне и… ну дальше вы всё и так знаете.
Защититься от такого не просто, а очень просто, но на на практике я редко вижу, чтобы кто-то так делал (а зря).
Достаточно поставить на каталог-маунтпойнт immutable флаг. Если потом вы что-то смонтируете в этот каталог — то immutable флаг остаётся на «нижележащей» файловой системе, писать в смонтированную он не мешает. А как только смонтированная ФС отвалится — система в каталог записать уже ничего не сможет (в том числе и от рута, у нас тут не бсд, где 000 работает).
immutable-флаг ставится так:
Снимается, соответственно, так:
Ну и посмотрим на примере:
touch: setting times of '/mnt/backups/asfasf': No such file or directory
-bash: /mnt/backups/asfas: Operation not permitted
mkdir: cannot create directory '/mnt/backups/asfasf': Operation not permitted
1 2 3 lost+found new
Само собой, это не единственная задача, в которой пригодится chattr +i (например, я иногда его использую, чтобы ТОЧНО ни одна сцобака не поправила опять resolv.conf), но пример, так сказать, очень жизненный. Ну и да, флаг этот ставится и на файлы, и на каталоги, и на чёрт знает что ещё. Впрочем, на симлинки, вроде бы, не ставится.
immutable конечно интересно, но не проще ли сделать триггер в заббикс?
> immutable конечно интересно, но не проще ли сделать триггер в заббикс?
Одно другого не отменяет
ну вот только с иммутабл я устал пинать коллег, что его не стоит ставить везде где ни попадя.
особенно весело бывает, когда кто-то делает chattr -Ri и что-то вследствие этого ломается, так как держалось только на костылях.
Ну тут кажется проблема не в immutable как таковом)