Сложнее всего было придумать название к статье %) Спойлер — не получилось.
В общем, думаю, вы сталкивались с ситуацией, когда бэкапы делаются в какой-нибудь /mnt/backup, потом по какой-то причине он не смонтировался/отмонтировался (будь то сетевая ФС или отвалившийся диск), после чего скрипт бэкапа забивает всё место в корне и… ну дальше вы всё и так знаете.
Защититься от такого не просто, а очень просто, но на на практике я редко вижу, чтобы кто-то так делал (а зря).
Достаточно поставить на каталог-маунтпойнт immutable флаг. Если потом вы что-то смонтируете в этот каталог — то immutable флаг остаётся на «нижележащей» файловой системе, писать в смонтированную он не мешает. А как только смонтированная ФС отвалится — система в каталог записать уже ничего не сможет (в том числе и от рута, у нас тут не бсд, где 000 работает).
immutable-флаг ставится так:
root@server:~# chattr +i /mnt/path
Снимается, соответственно, так:
root@server:~# chattr -i /mnt/path
Ну и посмотрим на примере:
root@server:~# mkdir /mnt/backups
root@server:~# chattr +i /mnt/backups
root@server:~# touch /mnt/backups/asfasf
touch: setting times of '/mnt/backups/asfasf': No such file or directory
root@server:~# echo 123123 > /mnt/backups/asfas
-bash: /mnt/backups/asfas: Operation not permitted
root@server:~# mkdir /mnt/backups/asfasf
mkdir: cannot create directory '/mnt/backups/asfasf': Operation not permitted
root@server:~# mount /dev/loop3 /mnt/backups/ #типа диск с бэкапами или сетевая ФС
root@server:~# touch /mnt/backups/new; touch /mnt/backups/{1..3}
root@server:~# ls /mnt/backups/
1 2 3 lost+found new
Само собой, это не единственная задача, в которой пригодится chattr +i (например, я иногда его использую, чтобы ТОЧНО ни одна сцобака не поправила опять resolv.conf), но пример, так сказать, очень жизненный. Ну и да, флаг этот ставится и на файлы, и на каталоги, и на чёрт знает что ещё. Впрочем, на симлинки, вроде бы, не ставится.
Mellanox делает неплохие 25G/100G карточки, которые в целом работают в современных дистрах без проблем. Что ещё интереснее — 100G карта отдаёт свои 100G без какого-либо дополнительного тюнинга системы (ну на достаточно мощном сервере). На условном «местном авито» при этом можно найти множество дешёвых карт MLX, про которые продавцы пишут «не использовались». Большинство таких карточек — […]
На данный момент в debian 11 в main-репе лежит не очень работающая версия python3-certbot-dns-cloudflare (а в других никакой не лежит). С некоторое долей вероятности, попытавшись получить через letsencrypt certonly —dns-cloudflare НЕ-wildcard сертификат, вы получите такое (актуально это и для wildcard+domain сертификатов, само собой): IMPORTANT NOTES:- The following errors were reported by the server:Domain: example.comType: unauthorizedDetail: […]
Прежде, чем заявить «Пффф, да всё легко, шо вы тут мне втираете», ответьте мысленно на простенький вопрос — какой объём (в количестве дисков) будет у raid10 в mdadm, если в массиве 3 диска? Ответили? Правда же вы ответили, что-то вроде «либо полтора диска, либо один диск»? Нет? Присаживайтесь — я, конечно, не коммитил в raid10.c, […]
Это достаточно старая статья, которая была когда-то давно опубликована в очень закрытом блоге (инвайт получить занимает минимум часов 10!). Планы по публикации её в публичный интернет так и не стали реальностью, поэтому статью мне пришлось стащить и… Шучу, я как минимум у двух человек уточнил (в том числе и у автора), они разрешили -) Статью […]
Я тут внезапно ковырялся в базке блога, пытаясь обновить WP (спойлер — не вышло), и обнаружил, что первая статья в блоге была опубликована 3 марта 2010 года — Вступление Ну штош *гифка со сцепленными пальцами*. Пришло время подвести статистику и чуть-чуть двинуть свой зад дальше. За 10 лет в блоге написано: — 255 статей (эта […]
Поймите меня правильно. Я не жалуюсь на своё место работы — здесь как раз всё отлично, даже более чем. Цепочка моих руководителей — бывшие (пусть некоторые и очень бывшие) сисадмины в том или ином виде. Вот только сколько моё место просуществует, и найду ли я потом хотя бы вполовину столь же хорошую работу — вопросы […]
https://bits.debian.org/2019/07/buster-released.html https://www.opennet.ru/opennews/art.shtml?num=51041 — на русском
«Если нельзя, но очень хочется — то можно». В голове крутилась эта фраза после того, как я очередному человеку с заболеванием «докер головного мозга» вынужден был «пошутить» в духе «чувак, тебе здесь проще весь корень контейнера смонтировать как volume», а я сидел и думал, что не такая уж это и шутка, если её в десятый […]