Celá koncepce a implementace systemd přinesla mnoho změn od doby, kdy začala nahrazovat staré spouštěcí a iniciační nástroje SystemV. Postupem času se systemd rozšířil do mnoha dalších segmentů prostředí Linuxu.
Jedna relativně nová služba, systemd-homed, rozšiřuje dosah systemd do správy domovských adresářů uživatelů. Tato funkce vynucuje pouze přístup lidského uživatele a omezuje systémové uživatele v rozsahu User ID (UID) mezi 0 a 999. Podporuji plán systemd převzít svět, ale napadlo mě, jestli to není trochu přehnané. Pak jsem provedl nějaký průzkum.
Co je to systemd-homed?
Služba systemd-homed podporuje přenositelnost uživatelských účtů nezávisle na základním počítačovém systému. Praktickým příkladem je nosit svůj domovský adresář na USB flash disku a zapojit jej do jakéhokoli systému, který by jej automaticky rozpoznal a připojil. Podle Lennarta Poetteringa, hlavního vývojáře systemd, by přístup k domovskému adresáři uživatele neměl být povolen nikomu, pokud není uživatel přihlášen. Služba systemd-homed je navržena pro zvýšení bezpečnosti, zejména pro mobilní zařízení, jako jsou notebooky. Vypadá to také jako nástroj, který by mohl být užitečný s kontejnery.
Tohoto cíle lze dosáhnout pouze tehdy, pokud domovský adresář obsahuje všechna uživatelská metadata. V souboru ~/.identity jsou uloženy informace o uživatelském účtu, které jsou přístupné pouze pro homed systemd po zadání hesla. Tento soubor obsahuje všechna metadata účtu, včetně všeho, co o vás Linux potřebuje vědět, takže domovský adresář je přenosný na libovolného hostitele Linuxu, který používá systemd-homed. Tento přístup zabraňuje mít účet s uloženým heslem na každém systému, který byste mohli potřebovat.
Domovský adresář lze také zašifrovat pomocí vašeho hesla. Pod systemd-homed váš domovský adresář ukládá vaše heslo se všemi vašimi uživatelskými metadaty. Vaše zašifrované heslo není uloženo nikde jinde, takže k němu nikdo nemá přístup. Ačkoli jsou metody používané k šifrování a ukládání hesel pro moderní systémy Linux považovány za neprolomitelné, nejlepší ochranou je zabránit v přístupu k nim. Předpoklady o nezranitelnosti jejich bezpečnosti vedly mnohé ke zkáze.
Tato služba je primárně určena pro použití s přenosnými zařízeními, jako jsou notebooky. Poettering uvádí:"Homed je primárně určen pro klientské počítače, tj. notebooky a tedy stroje, na které obvykle používáte ssh mnohem více než ssh, pokud budete postupovat podle toho, co mám na mysli." Není určeno pro použití na serverech nebo pracovních stanicích, které jsou připojeny k jednomu místu kabely nebo uzamčeny v serverové místnosti.
Služba systemd-homed je u nových instalací standardně povolena – alespoň pro Fedoru, což je distribuce, kterou používám. Tato konfigurace je záměrná a neočekávám, že se to změní. Uživatelské účty nejsou nijak ovlivněny ani změněny na systémech se stávajícími souborovými systémy, upgrady nebo reinstalacemi, které zachovávají stávající oddíly a logické svazky.
Vytváření kontrolovaných uživatelů
Tradiční nástroje jako useradd
vytvářet účty a domovské adresáře, které systemd-homed nespravuje. Pokud tedy budete nadále používat konvenční nástroje pro správu uživatelů, domovské adresáře ve vašich domovských adresářích nebudou spravovány systémem systemd-homed. To je také případ uživatelského účtu jiného uživatele než root vytvořeného během nové instalace.
Příkaz homectl
homectl
příkaz vytvoří uživatelské účty, které spravuje systemd-homed. Pomocí homectl
příkaz k vytvoření nového účtu vygeneruje metadata potřebná k tomu, aby byl domovský adresář přenosný.
homectl
Manuová stránka příkazu má dobré vysvětlení cílů a funkce služby s domovským systémem systemd. Nicméně čtení homectl
manuálová stránka je docela zajímavá, zvláště sekce Příklad. Tři z pěti příkladů ukazují, jak vytvořit uživatelské účty se specifickými omezeními, jako je maximální počet souběžných procesů nebo maximální množství místa na disku.
V nastavení bez homectl /etc/security/limits.conf
soubor ukládá tato omezení. Jedinou výhodou, kterou v tom vidím, je, že přidává uživatele a aplikuje limity jediným příkazem. Při tradiční metodě musí správce systému nakonfigurovat limits.conf
soubor ručně.
Omezení
Jediným významným omezením, kterého jsem si vědom, je to, že není možné vzdáleně přistupovat k domovskému adresáři uživatele pomocí OpenSSH. Toto omezení je způsobeno současnou neschopností PAM poskytnout přístup k domovskému adresáři spravovanému homectl
. Zdá se, že poettering pochybuje, že to lze překonat. Tento problém by mi zabránil v použití systemd-homed pro můj domovský adresář na mé primární pracovní stanici nebo dokonce na mém notebooku. Obvykle se k oběma počítačům vzdáleně přihlašuji několikrát denně pomocí SSH, takže tohle je pro mě stopka.
Další obavu, kterou vidím, je, že stále potřebujete počítač se systémem Linux pro použití s USB flash diskem s vaším domovským adresářem a tento počítač musí mít spuštěný systémový domov.
Je volitelné
Nemusíte jej však používat. Plánuji nadále používat tradiční nástroje pro správu uživatelů pro podporu mého pracovního postupu. Výchozím nastavením pro několik distribucí, o kterých mám trochu povědomí, včetně Fedory, je povolená a spuštěná služba nasměrovaná na systemd. Můžete deaktivovat a zastavit službu řízenou systémem, aniž by to ovlivnilo tradiční uživatelské účty.
Poslední myšlenky
Sysadmins mohou využít službu systemd-homed pro bezpečnou formu správy domovských adresářů roamingových uživatelů. Je užitečný na přenosných zařízeních, jako jsou notebooky, a může být zvláště užitečný pro uživatele, kteří nosí flash disk obsahující pouze jejich domovské adresáře, aby jej mohli připojit k libovolnému pohodlnému počítači se systémem Linux.
Primárním omezením používání systemd-homed je, že není možné se vzdáleně přihlásit pomocí SSH. A i když je systemd-homed ve výchozím nastavení povoleno, neovlivňuje domovské adresáře vytvořené pomocí useradd
příkaz. Musím zdůraznit, že – stejně jako mnoho nástrojů systemd – systemd-homed je volitelný. Tak jsem právě zastavil a deaktivoval službu.
Pokud potřebuji vzít svůj domovský adresář v balíčku menším než můj notebook, stačí mi použít živé USB s trvalým úložištěm.
Zdroje
- https://systemd.io/HOME_DIRECTORY/
- https://www.freedesktop.org/software/systemd/man/homectl.html
- https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html
- https://wiki.archlinux.org/title/Systemd-homed