Maskování služby je termín používaný v systému systemd (což je init systém v Linuxu, který spravuje služby a jejich stav). Když je služba "maskována", znamená to, že je zcela zakázána a nemůže být spuštěna nebo povolena.
Co to znamená "maskování služby"?
Maskování služby znamená, že je službě zamezeno ve spuštění tím, že se odstraní nebo přepíše její spouštěcí soubor (unit file) v systému. To je prováděno vytvořením symbolického odkazu (symlink), který ukazuje na /dev/null
, což znamená, že systemd se vůbec nesnaží službu spustit, a pokud by někdo tuto službu chtěl spustit, nebude to možné, protože soubor služby je neexistující nebo zcela ignorován.
Například pokud chcete službu maskovat, můžete použít následující příkaz:
Pokud se pokusíte spustit maskovanou službu, systemd vám oznámí, že služba je "masked" a nemůže být spuštěna.
Jak se to liší od zakázání služby?
Zakázání služby (
systemctl disable <název_služby>
): Toto znamená, že služba nebude automaticky spuštěna při startu systému, ale může být stále spuštěna ručně uživatelem. Soubor služby není zničen nebo přesměrován na/dev/null
, pouze se odstraní symbolický odkaz v adresáři pro spouštění služby.Maskování služby (
systemctl mask <název_služby>
): Tímto příkazem se služba zcela "vypne". Vytvoří se symbolický odkaz na/dev/null
, což znamená, že služba nemůže být vůbec spuštěna, a to ani manuálně.
Proč se služba maskuje?
Maskování služby je užitečné, pokud chcete:
- Zabránit spuštění služby za jakýchkoli okolností. Například pokud služba způsobuje problémy a nechcete, aby byla nějakým způsobem znovu spuštěna.
- Zabezpečit systém tím, že zabráníte spuštění služby, kterou nechcete mít v provozu (například bezpečnostní důvody).
Příklad použití:
Pokud instalujete Samba na server a chcete, aby běžel pouze jako file server (a ne jako Active Directory Domain Controller), může být služba samba-ad-dc.service
maskována, protože ji nebudete potřebovat a chcete, aby systém nezkoušel tuto službu spustit.
Příkaz pro maskování služby:
sudo systemctl mask samba-ad-dc.service
Příkaz pro zrušení maskování služby:
sudo systemctl unmask samba-ad-dc.service
Maskování je silnější než zakázání, protože to úplně blokuje možnost spuštění služby, dokud ji neodmaskujete.
Tak sambu jsem právě nainstaloval, ještě jsem ji nenakonfiguroval. Je to ten důvod proč je maskována? Zjisti informace o stavu po nainstalování samby.
Po instalaci Samba mohou být některé služby maskovány, pokud je určitá konfigurace nebo role služby zbytečná pro daný systém. To může být případ i pro službu samba-ad-dc.service
, která je určena pro Active Directory Domain Controller (AD DC), ale pokud instalujete Samba pouze jako sdílení souborů, tato služba není potřeba a je proto automaticky maskována.
Proč je služba samba-ad-dc.service
maskována?
- Role Samba: Pokud instalujete Samba jako standalone server (pro sdílení souborů, tiskáren apod.), není potřeba služba pro Active Directory Domain Controller. Tato služba je tedy maskována, protože ji nebudete potřebovat.
- Maskování služby je běžné, protože
samba-ad-dc.service
by nebyla spuštěná, dokud by se neprovedla konkrétní konfigurace pro Active Directory.
Zjištění stavu po instalaci samby
Pokud chcete zjistit, jaký je stav služeb po instalaci Samby, můžete použít následující příkazy:
Zkontrolujte stav Samba služeb:
sudo su
systemctl status samba
systemctl status smbd
systemctl status nmbd
systemctl status samba-ad-dc.service
To je k ničemu. Provedu to takto:
root@Toshi:/home/user# systemctl unmask samba-ad-dc.service
Removed /etc/systemd/system/samba-ad-dc.service.
# systemctl enable samba-ad-dc.service
Synchronizing state of samba-ad-dc.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable samba-ad-dc
Created symlink /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service → /lib/systemd/system/samba-ad-dc.service.
samba
: Hlavní služba, pokud je nainstalována pro sdílení souborů.smbd
: Služba pro sdílení souborů.
nmbd
: Služba pro práci s NetBIOS.
samba-ad-dc.service
: Tato služba by měla být maskována, pokud Samba není nastavena jako Active Directory Domain Controller.
Zkontrolujte, zda je služba maskována:
To je nesmysl, když je maskována toto nebude fungovat:
sudo systemctl is-enabled samba-ad-dc.service
Další kroky po instalaci
Pokud jste ještě Samba nenakonfigurovali a používáte ji pro sdílení souborů, nemusíte se zabývat službou samba-ad-dc.service
. Stačí se soustředit na smbd
a nmbd
, které jsou odpovědné za samotné sdílení souborů a připojení k síti.
Pokud chcete zrušit maskování služby samba-ad-dc (pokud byste se rozhodli pro konfiguraci AD), můžete použít příkaz:
sudo systemctl unmask samba-ad-dc.service
A následně povolit a spustit službu, pokud byste chtěli používat Samba jako Active Directory Domain Controller:
sudo systemctl enable samba-ad-dc.service
sudo systemctl start samba-ad-dc.service
Žádné komentáře:
Okomentovat