[Статья в блоге]
Привет, уважаемые любители Linux! Сегодня мы собираемся углубиться в тему, которая важна для любого системного администратора или пользователя Linux: предотвращение отключения служб systemctl. Systemctl — это мощный инструмент командной строки, который позволяет нам управлять службами в наших системах Linux, но иногда нам необходимо убедиться, что определенные службы остаются включенными. Итак, давайте рассмотрим восемь способов добиться этого!
Метод 1: замаскируйте службу.
Маскировка службы гарантирует, что ее нельзя будет запустить, остановить или даже включить. Чтобы замаскировать службу, используйте следующую команду:
sudo systemctl mask <service-name>
Метод 2: добавление псевдонима
Создав псевдоним для службы, вы можете эффективно отключить его, не удаляя его полностью. Этот метод удобен, если вы хотите сохранить конфигурацию службы без изменений, не допуская ее запуска. Вот пример:
sudo systemctl add-wants <target-service>.service /dev/null
Метод 3: изменение разрешений службы
Настройка разрешений служебного файла может помешать systemctl отключить его. Ограничивая доступ на запись к служебному файлу, вы гарантируете невозможность внесения изменений. Вот как это можно сделать:
sudo chmod 400 /etc/systemd/system/<service-name>.service
Метод 4: используйте переопределения Systemd
Переопределения Systemd позволяют изменять определенные свойства службы, не изменяя исходный файл службы. Переопределив свойство WantedBy, вы можете гарантировать, что служба всегда включена. Вот пример:
sudo systemctl edit --full <service-name>.service
Затем добавьте следующие строки:
[Install]
WantedBy=default.target
Метод 5: установите для службы статический
Установка статической службы означает, что она не будет автоматически включаться или отключаться в зависимости от зависимостей или целей. Чтобы установить статическую службу, используйте следующую команду:
sudo systemctl set-default <service-name>.service
Метод 6: использование предустановок Systemctl
Предустановки Systemctl позволяют определить состояние службы по умолчанию. Установив для службы значение «включено», вы гарантируете, что она не будет отключена. Вот как это можно сделать:
sudo systemctl preset <service-name>.service
Метод 7. Создание фиктивной службы
Создание фиктивной службы позволяет сохранить исходную службу в неприкосновенности, одновременно эффективно отключив ее. Вот пример того, как можно создать фиктивную службу:
sudo nano /etc/systemd/system/<dummy-service>.service
Внутри файла добавьте следующие строки:
[Unit]
Description=Dummy Service
[Service]
Type=oneshot
ExecStart=/bin/true
[Install]
WantedBy=default.target
Метод 8: закрепление пакета
Если служба связана с пакетом, закрепление пакета предотвращает его обновление или удаление. Этот метод гарантирует, что служба останется включенной. Вот пример использования менеджера пакетов apt:
sudo apt-mark hold <package-name>
И вот оно! Восемь способов запретить systemctl отключать службы в Linux. Помните, что у каждого метода свой вариант использования, поэтому выберите тот, который лучше всего соответствует вашим потребностям.
Надеюсь, это руководство оказалось для вас полезным. Приятного сисадмина!