Sådan maskerer du en tjeneste ved hjælp af systemctl-kommando

Sadan Maskerer Du En Tjeneste Ved Hjaelp Af Systemctl Kommando



Systemctl er et kommandolinjeværktøj, der bruges til at administrere systemtjenester. Det har en række muligheder for at administrere tjenesten på Linux, såsom at starte en tjeneste, stoppe den, aktivere og deaktivere den. Der er en anden mulighed kaldet a maske .

Maskering af en systemtjeneste betyder, at tjenesten er deaktiveret og ikke kan aktiveres, heller ikke af systemet eller ved manuel kommando. Maskering er en stærkere form for invalidering.

I denne vejledning vil jeg lede dig gennem, hvordan du maskerer en tjeneste på Linux ved hjælp af systemctl, og hvordan du afmasker den. Desuden vil jeg dække vigtige forskelle mellem en maskeret tjeneste og en deaktiveret tjeneste.







Advarsel: På Linux er tjenesterne indbyrdes afhængige. Da maskering af tjenesten deaktiverer den og forbyder enhver aktivering, brug den derfor forsigtigt.



Før vi går videre, lad os først forstå mekanismen bag den maskerede tjeneste.



Hvad er en maskeret tjeneste

En maskeret tjeneste er en permanent deaktiveret tjeneste, der forhindrer den i at blive aktiveret af systemet eller systemadministratoren. Systemadministratorer bruger generelt maske mulighed for at deaktivere de funktionsfejl eller modstridende tjenester. Det anbefales dog at bruge denne mulighed med forsigtighed, da maskering af en afgørende systemtjeneste kan bringe forhindringer i forbindelse med opstart af systemet.





Sådan listes maskerede tjenester

For at liste maskerede tjenester på Linux skal du bruge liste-enheder mulighed med den nævnte stat maskeret.

systemctl liste-enheder --stat =maskeret



Sådan maskerer du en tjeneste

Systemctl-kommandoen kan bruges til at maskere enhver tjeneste med maske mulighed. Den generelle syntaks for kommandoen er nævnt nedenfor.

sudo systemctl maske [ Tjenestenavn ]

Maskeindstillingen i ovenstående syntaks danner i det væsentlige et symbolsk link til tjenesten i /etc/systemd/system .

En eller flere tjenester kan også nævnes adskilt af et mellemrum.

Lad os maskere SSH-tjenesten ved hjælp af ovenstående syntaks.

sudo systemctl maske ssh.service

For at kontrollere status for en maskeret tjeneste skal du bruge –tilstand= mulighed med systemctl liste-enheder .

Hvis du forsøger at starte tjenesten, vil du modtage et output, der siger, at enheden er maskeret.

Bemærk: Du kan ikke maskere en tjeneste oprettet i /etc/systemd/system vejviser. Fordi tjenester i denne mappe er afgørende for systemoperationer, kan maskering af dem skade den normale systemfunktionalitet. Men at deaktivere disse tjenester svarer til at maskere dem.

Sådan maskerer du en tjeneste midlertidigt

En tjeneste kan maskeres indtil næste opstart ved at bruge – køretid mulighed.

sudo systemctl maske [ Tjenestenavn ] --runtime

Det skaber et symbolsk link af tjenesten i /run/systemd/system vejviser. Hvis det symbolske link til tjenesten allerede er til stede i biblioteket, er tjenesten designet til at blive maskeret midlertidigt.

Sådan afmasker en tjeneste

Brug systemctl-kommandoen med afmaske mulighed for at fjerne maskebegrænsningerne. Denne kommando vil ikke acceptere stien til tjenesten, derfor er det kun tjenestenavne, der skal nævnes.

sudo systemctl afmaske [ Tjenestenavn ]

Du skal muligvis genstarte systemet efter at have afmasket tjenesten.

Forskellen mellem en maskeret tjeneste og en deaktiveret tjeneste

En deaktiveret tjeneste kan aktiveres og startes af systemet og på manuelle kommandoer. Den maskerede tjeneste kan dog ikke aktiveres, hverken af ​​systemet eller ved manuel interaktion.

Når en tjeneste gøres deaktiveret, oprettes et symbolsk link i /etc/systemd/system bibliotek fjernes, og tjenesten aktiveres ikke ved opstart. Men det kan aktiveres af de afhængige tjenester.

På den anden side er den maskerede tjeneste knyttet til /dev/null hvilket gør den permanent ubrugelig.

Bemærk, at /dev mappen indeholder filerne fra blokenhederne. Det /dev/null er en virtuel enhed, der fjerner alt, der er skrevet til den. Det bruges generelt til at kassere output fra stdout og stderr.

Konklusion

Hvis du vil gøre en tjeneste permanent deaktiveret, skal du bruge systemctl mask-kommandoen. En maskeret tjeneste kan ikke aktiveres, selv af systemet. I denne vejledning dækkede jeg, hvordan man maskerer en tjeneste permanent og midlertidigt. Desuden nævnte vi også en metode til at afmaske en tjeneste og de vigtigste forskelle mellem en maskeret og en deaktiveret tjeneste.