Группы
Группа — это набор записей с именем и единица включения-выключения. Каждая запись
принадлежит ровно одной группе; hostsctl add без --group кладёт её в local, создавая
эту группу при первом использовании.
hostsctl group list type name entries file descriptionon local local 3 config.yaml Local developmenton local work 2 20-work.yaml Work standsoff remote blocklist 102843 30-ads.yaml https://raw.githubusercontent.com/…Создать и наполнить
Заголовок раздела «Создать и наполнить»hostsctl group add work --description "Work stands"hostsctl add 10.0.0.7 stand.local --group work--group у add тоже создаёт группу, если её нет, так что явный group add нужен только
когда хочется сразу задать описание или конкретный файл.
Переключить группу целиком
Заголовок раздела «Переключить группу целиком»hostsctl group disable blocklist --applyhostsctl group enable blocklist --applyВыключенная группа сохраняет все записи и просто не рендерится. Ради этого группы и существуют: выключить сто тысяч заблокированных доменов на один вечер не должно означать их удаление.
--apply у любой изменяющей команды сразу перерисовывает /etc/hosts, для чего нужен
root. Без него правка остаётся в конфиге до следующего apply.
Описание становится комментарием
Заголовок раздела «Описание становится комментарием»Описание рендерится шапкой группы внутри управляемого блока:
# --- work — Work stands ---10.0.0.7 stand.localУ удалённой группы без описания вместо него подставляется URL источника — так всегда видно, откуда взялся блок строк.
Удаление
Заголовок раздела «Удаление»hostsctl group rm work # спросит; -y пропускает вопросГруппа удаляется вместе с записями, а для удалённой — ещё и кеш списка. Если записи могут понадобиться позже, выключай, а не удаляй.
Перенос между файлами
Заголовок раздела «Перенос между файлами»Группы живут либо в основном конфиге, либо в файле-зоне:
hostsctl group move work --file zones/20-work.yamlhostsctl group move work --file main # обратно в config.yamlИмена групп уникальны по всем файлам. Если одно имя встретилось дважды, hostsctl отказывается работать и называет оба файла — молча выбрать один означало бы молча потерять другой.
Локальные и удалённые
Заголовок раздела «Локальные и удалённые»У группы есть либо entries (локальная), либо source (удалённый блоклист), но не
осмысленно оба сразу. Добавление ручной записи в удалённую группу отвергается, а не
игнорируется тихо; check предупредит, если в конфиге всё-таки оказалось и то и другое.