Поиск по сайту:
Прежде чем советоваться с прихотью, посоветуйся со своим кошельком (Б. Франклин).

Как замаскировать службу с помощью команды systemctl

17.08.2024
Как замаскировать службу с помощью команды systemctl

systemctl – это утилита командной строки, используемая для управления системными службами. У нее есть множество опций для управления службой в Linux, таких как запуск службы, ее остановка, включение и деактивация. Существует еще один вариант, называемый mask.

Маскировка службы systemd означает, что служба отключена и не может быть включена даже системой или по команде вручную. Маскировка – более сильная форма отключения.

В этой статье мы расскажем вам, как замаскировать службу в Linux с помощью systemctl и как ее разоблачить. Более того, мы расскажем о ключевых различиях между замаскированной службой и отключенной службой.

Предупреждение: В Linux службы взаимозависимы. Поскольку маскировка службы отключает ее и запрещает любую активацию, поэтому используйте ее осторожно.

 

Прежде чем идти дальше, давайте сначала разберемся в механизме, лежащем в основе замаскированной службы.

 

Что такое замаскированная служба

Замаскированная служба – это постоянно отключенная служба, которая не позволяет системе или системному администратору включать ее. Системные администраторы обычно используют опцию mask для деактивации неисправных или конфликтующих служб. Однако рекомендуется использовать этот параметр с осторожностью, поскольку маскировка важной системной службы может создать препятствия при загрузке системы.

 

Как составить список замаскированных служб

Чтобы составить список замаскированных служб в Linux, используйте опцию list-units с указанным замаскированным состоянием.

systemctl list-units --state=masked
sam@sam: $ systemctl list-units --state=masked

UNIT               LOAD    ACTIVE  SUB   DESCRIPTION 
netscript.service masked inactive dead netscript.service

LOAD = Reflects whether the unit definition was properly loaded. 
ACTIVE = The high-level unit activation state, i.e. generalization of SUB. 
SUB = The low-level unit activation state, values depend on unit type. 
1 loaded units listed.

sam@sam: $

 

Читать  Как использовать команду systemctl для включения и отключения служб

Как замаскировать службу

Команда systemctl может использоваться для маскировки любой службы с помощью опции mask. Общий синтаксис команды приведен ниже.

sudo systemctl mask [Service-Name]

 

Опция mask в приведенном выше синтаксисе по сути создает символическую ссылку на службу в /etc/systemd/system.

Также может быть упомянута одна или несколько служб, разделенных пробелом.

Давайте замаскируем службу SSH, используя приведенный выше синтаксис.

sudo systemctl mask ssh.service

 

sam@sam: $ sudo systemctl mask ssh.service

[sudo] password for sam:
Created symlink /etc/systemd/system/ssh.service ->/dev/null.

sam@sam: $

 

Чтобы проверить состояние замаскированной службы, используйте опцию –state= с помощью systemctl list-units.

Как замаскировать службу с помощью команды systemctl

 

Если вы попытаетесь запустить службу, вы получите вывод о том, что устройство замаскировано.

 

sam@sam: $ sudo systemctl start ssh.service 
Failed to start ssh.service: Unit ssh.service is masked.

 

Примечание: Вы не можете замаскировать службу, созданную в каталоге /etc/systemd/system. Поскольку службы в этом каталоге необходимы для работы системы, их маскировка может нанести ущерб нормальной функциональности системы. Однако отключение этих служб равносильно их маскировке.

 

Как временно замаскировать службу

Служба может быть замаскирована до следующей загрузки с помощью опции –runtime .

sudo systemctl mask [Service-Name] --runtime
sam@sam: $ sudo systemctl mask ssh.service --runtime 
Created symlink /run/systemd/system/ssh.service ->/dev/null.

 

Она создает символическую ссылку на службу в каталоге /run/systemd/system. Если символическая ссылка службы уже присутствует в каталоге, то служба предназначена для временной маскировки.

Читать  Как удалить файл Systemd Service

 

Как убрать маску со службы

Используйте команду systemctl с параметром снять маску, чтобы снять ограничения маски. Эта команда не принимает путь к службе, поэтому необходимо указывать только названия служб.

sudo systemctl снимает маску [Имя службы]

 

Возможно, вам потребуется перезагрузить систему после снятия маски с службы.

 

Разница между замаскированной службой и отключенной службой

Отключенная служба может быть включена и запущена системой и с помощью ручных команд. Однако замаскированная служба не может быть включена ни системой, ни при ручном взаимодействии.

Когда служба отключается, символическая ссылка, созданная в каталоге /etc/systemd/system, удаляется, и служба не активируется при загрузке. Но она может быть активирована зависимыми службами.

С другой стороны, замаскированная служба связана с /dev/null, что делает ее постоянно непригодной для использования.

Обратите внимание, что каталог /dev содержит файлы блочных устройств. /dev/null – это виртуальное устройство, которое удаляет все, что на него записано. Обычно она используется для удаления выходных данных из stdout и stderr.

 

Заключение

Если вы хотите отключить какую-либо службу навсегда, используйте команду systemctl mask . Замаскированную службу не может включить даже система. В этом руководстве я описал, как замаскировать службу постоянно и временно. Более того, мы также упомянули метод демаскирования службы и ключевые различия между замаскированной и отключенной службой.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

15 + четырнадцать =

**ссылки nofollow

Это может быть вам интересно


Рекомендуемое
Учебный центр «ЕЦОП» приглашает специалистов в области информационной безопасности пройти…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: