Cómo enmascarar un servicio usando el comando systemctl

Como Enmascarar Un Servicio Usando El Comando Systemctl



systemctl es una utilidad de línea de comandos que se utiliza para administrar los servicios del sistema. Tiene una variedad de opciones para administrar el servicio en Linux, como iniciar un servicio, detenerlo, habilitarlo y deshabilitarlo. Hay otra opción llamada mascarilla .

Enmascarar un servicio systemd significa que el servicio está deshabilitado y no puede habilitarse, ni siquiera mediante el sistema o mediante un comando manual. El enmascaramiento es una forma más fuerte de incapacitación.

En esta guía, le explicaré cómo enmascarar un servicio en Linux usando systemctl y cómo desenmascararlo. Además, cubriré las diferencias clave entre un servicio enmascarado y un servicio para discapacitados.







Advertencia: En Linux, los servicios son interdependientes. Dado que enmascarar el servicio lo desactiva y prohíbe cualquier activación, utilícelo con cuidado.



Antes de continuar, primero comprendamos el mecanismo detrás del servicio enmascarado.



¿Qué es un servicio enmascarado?

Un servicio enmascarado es un servicio permanentemente deshabilitado que impide que el sistema o el administrador del sistema lo habilite. Los administradores de sistemas generalmente utilizan el mascarilla opción de desactivar los servicios que funcionan mal o están en conflicto. Sin embargo, se recomienda utilizar esta opción con precaución, ya que enmascarar un servicio crucial del sistema puede generar obstáculos al iniciar el sistema.





Cómo enumerar servicios enmascarados

Para enumerar servicios enmascarados en Linux, utilice el unidades de lista opción con el estado mencionado enmascarado.

unidades de lista systemctl --estado = enmascarado



Cómo enmascarar un servicio

El comando systemctl se puede utilizar para enmascarar cualquier servicio con el mascarilla opción. La sintaxis general del comando se menciona a continuación.

sudo máscara systemctl [ Nombre del Servicio ]

La opción de máscara en la sintaxis anterior esencialmente crea un enlace simbólico al servicio en el /etc/systemd/sistema .

También se pueden mencionar uno o más servicios, separados por un espacio.

Enmascaremos el servicio SSH usando la sintaxis anterior.

sudo máscara systemctl ssh.servicio

Para comprobar el estado de un servicio enmascarado, utilice el –estado= opción con unidades de lista systemctl .

Si intenta iniciar el servicio, recibirá un mensaje que indica que la unidad está enmascarada.

Nota: No se puede enmascarar un servicio creado en el /etc/systemd/sistema directorio. Dado que los servicios de este directorio son esenciales para las operaciones del sistema, enmascararlos puede dañar la funcionalidad normal del sistema. Sin embargo, deshabilitar estos servicios equivale a enmascararlos.

Cómo enmascarar un servicio temporalmente

Un servicio se puede enmascarar hasta el próximo inicio utilizando el –tiempo de ejecución opción.

sudo máscara systemctl [ Nombre del Servicio ] --tiempo de ejecución

Crea un vínculo simbólico del servicio en el /ejecutar/systemd/system directorio. Si el enlace simbólico del servicio ya está presente en el directorio, entonces el servicio está diseñado para estar enmascarado temporalmente.

Cómo desenmascarar un servicio

Utilice el comando systemctl con el desenmascarar opción para eliminar las restricciones de la máscara. Este comando no aceptará la ruta del servicio, por lo tanto, solo es necesario mencionar los nombres de los servicios.

sudo desenmascarar systemctl [ Nombre del Servicio ]

Es posible que tengas que reiniciar el sistema después de desenmascarar el servicio.

Diferencia entre un servicio enmascarado y un servicio deshabilitado

Un servicio deshabilitado puede ser habilitado e iniciado por el sistema y mediante comandos manuales. Sin embargo, el servicio enmascarado no puede ser habilitado, ni por el sistema ni por interacción manual.

Cuando un servicio se desactiva, se crea un enlace simbólico en el /etc/systemd/sistema El directorio se elimina y el servicio no se activa al arrancar. Pero puede ser activado por los servicios dependientes.

Por otro lado, el servicio enmascarado está vinculado al /desarrollador/nulo lo que lo hace permanentemente inutilizable.

Tenga en cuenta que el /desarrollador El directorio contiene los archivos de los dispositivos de bloque. El /desarrollador/nulo es un dispositivo virtual que elimina todo lo escrito en él. Generalmente se usa para descartar la salida de stdout y stderr.

Conclusión

Si desea desactivar permanentemente algún servicio, utilice el comando systemctl mask. Un servicio enmascarado no puede ser habilitado ni siquiera por el sistema. En esta guía, cubrí cómo enmascarar un servicio de forma permanente y temporal. Además, también mencionamos un método para desenmascarar un servicio y las diferencias clave entre un servicio enmascarado y uno deshabilitado.