Tým za systemd chce, abyste přijali nový způsob správy domovských adresářů. Nazvat to „novou cestou“ je zlehčující – jde o skutečnou změnu paradigmatu pro Linux. Zde je vše, co potřebujete vědět o systemd-homed, který pravděpodobně přichází do linuxové distribuce ve vašem okolí.
Table of Contents
Žádný cizinec kontroverze
Když systemd byl představen v roce 2010, linuxová komunita se rozdělila na tři tábory. Někteří si mysleli, že jde o vylepšení, jiní si mysleli, že jde o vadný design, který se nedrží filozofie Unixu. A některým to bylo jedno nebo druhé.
Odpor odpůrců byl hlasitý, prudký a v některých případech téměř fanatický. Lennart Poettering, softwarový inženýr ve společnosti červená čepice a co-vývojář systemd, dokonce dostal výhrůžky smrtí.
Na YouTube byly zveřejněny písně obhajující násilí vůči Poetteringovi a objevily se webové stránky, které se pokoušely přimět uživatele Linuxu k bojkotu systemd. Jeho spoluvývojář, Kay Sieversová, také se setkal s kritikou a nadávkami, ale Poettering to rozhodně nesl.
Přesto během osmi měsíců Fedora používala systemd. Do konce roku 2013 Oblouk, Debian, Manjaro, a Ubuntu se vše přesunulo na systemd. Samozřejmě, sláva open source je, že pokud se vám něco nelíbí, můžete zdrojový kód forkovat a dělat si s ním po svém. Nové distribuce – jako Devuan, což byl fork Debianu – byly vytvořeny výhradně proto, aby se zabránilo použití systemd.
Váš $HOME adresář
V adresářové struktuře Linuxu se vše, co děláte, nachází v adresáři „/home“. Vaše datové soubory, obrázky, hudba a celý strom osobních adresářů jsou uloženy v tomto jediném adresáři pojmenovaném po vašem uživatelském účtu.
Nastavení vašich aplikací jsou uložena ve vaší domovské složce ve skrytých „tečkových adresářích“. Pokud je prvním znakem názvu souboru nebo adresáře tečka (.), je skrytý. Protože jsou tato nastavení uložena lokálně a nikoli v centrálním registru – a protože záloha vašeho domovského adresáře obsahuje tyto skryté soubory a složky – zálohují se i všechna vaše nastavení.
Když obnovíte zálohu a spustíte aplikaci, jako je LibreOffice nebo Thunderbird, hledá její skrytý adresář. Najde také vaše předvolby dokumentu, nastavení panelu nástrojů a jakákoli další přizpůsobení. Thunderbird najde informace o vašem e-mailovém účtu a váš e-mail. Nemusíte procházet bolestí pomalého nastavování každé aplikace.
Chcete-li zobrazit skryté soubory a adresáře, můžete použít ls s volbou -a (all). Nejprve zadejte následující:
ls
To vám ukáže běžné soubory a adresáře. Dále zadejte následující:
ls -a
Nyní můžete vidět skryté soubory a adresáře.
Protože se jedná o nejcennější část instalace, je běžné, že adresář „/home“ je připojen na vlastní oddíl nebo na samostatný pevný disk. Tímto způsobem, pokud se s operačním systémem nebo oddílem, na kterém je, stane něco katastrofálního, můžete buď přeinstalovat distribuci Linuxu, nebo vyměnit za novou. Poté stačí znovu připojit váš stávající domácí oddíl na „/home“.
Údaje o vás
Váš domovský adresář neuchovává pouze vaše data; také ukládá informace o vás. včetně některých atributů vaší digitální identity. Například váš adresář „.ssh“ uchovává informace o vzdálených připojeních, která jste vytvořili k jiným počítačům, a všechny SSH klíče, které jste vygenerovali.
Další systémové atributy, jako je uživatelské jméno účtu, heslo a jedinečné uživatelské ID, jsou uloženy jinde v souborech jako „/etc/passwd“ a „/etc/shadow“. Některé z nich může číst kdokoli, ale jiné mohou číst pouze lidé, kteří mají práva root.
Takto vypadá obsah souboru „/etc/passwd“:
cat /etc/passwd
Změny v systemd
Záměrem změn řízených systémem Systemd je poskytnout plně přenosný domovský adresář s vašimi daty i digitální identitou Linuxu uloženými v něm. Vaše UID a všechny další identifikační a autentizační mechanismy budou uloženy pouze ve vašem domovském adresáři.
Díky designu „všechna vejce v jednom košíku“ jsou domovské adresáře šifrované. Jsou automaticky dešifrovány, kdykoli se přihlásíte, a znovu zašifrovány, kdykoli se odhlásíte. Preferovanou metodou je použití Linux Unified Key Setup (LUKS) šifrování disku. K dispozici jsou však i další schémata, jako např fscrypt.
A Zápis objektů JavaScript Záznam uživatele (JSON) ukládá všechny informace o vaší identitě v adresáři s názvem „~/.identity“. Je kryptograficky podepsán klíčem, který je mimo vaši kontrolu.
Domovský adresář každé osoby je připojen k zařízení se zpětnou smyčkou, podobně jako je připojena aplikace snap. Je tomu tak, takže strom adresářů v domovském adresáři se jeví jako bezproblémová součást stromu adresářů operačního systému. Výchozí bod připojení je „/home/$USER.homedir“ („$USER“ je nahrazen názvem účtu osoby).
Jaké jsou výhody?
Protože se váš domovský adresář stává bezpečným zapouzdřením všech vašich dat, můžete mít svůj domovský adresář dokonce na vyměnitelném zařízení. Můžete například použít jednotku USB k přesunu mezi pracovním a domácím počítačem nebo jakýmkoli jiným počítačem v systému.
To je to, co Poettering myslel „plně přenosným domovským adresářem“. Řekl, že i když nechcete svůj domovský adresář přesouvat na přenosném zařízení, usnadní to upgrady a migrace a zvýší bezpečnost.
Odstraňuje to, co nazývá „databáze postranních vozíků“, které obsahují úryvky důležitých informací o vás, které by podle Poetteringa měly být centralizovány. Soubory „/etc/passwd“ a „/etc/shadow“ obsahují ověřovací informace a hashovaná hesla. Obsahují však také informace, jako je váš výchozí shell, General Electric Comprehensive Operation Supervisor (GECOS) pole.
Poettering to řekl metadata by měly být racionalizovány a uloženy ve smysluplných skupinách v rámci záznamu JSON každé osoby v jejím domovském adresáři.
Správa vašeho nového $HOME
Služba systemd-homed se ovládá prostřednictvím nového homectl nástroj příkazového řádku.
Existují možnosti, jak vytvořit uživatele a domovské adresáře a nastavit limity úložiště pro každého uživatele. Můžete také nastavit heslo, uzamknout někoho z jeho účtu nebo účet úplně smazat. Uživatelé mohou být kontrolováni a jejich uživatelské záznamy JSON lze také číst.
Pro každého uživatele lze také nastavit časová pásma a další informace o poloze. Můžete zadat výchozí shell a dokonce nastavit proměnné prostředí tak, aby byly v určitém stavu, kdykoli se někdo přihlásí.
Pokud se podíváte do adresáře „/home“, uvidíte spravované položky s domovským systémem systemd, které vypadají takto, s „.homedir“ připojeným k uživatelskému jménu:
/home/dave.homedir
Pamatujte si, že toto je pouze přípojný bod. Umístění skutečného zašifrovaného domovského adresáře je jinde.
Omezení a problémy
systemd-homed je určen pouze pro použití na uživatelských účtech lidí. Neumí zpracovávat uživatelské účty s UID menším než 1 000. Jinými slovy, root, daemon, bin a tak dále nelze spravovat pomocí nového schématu. Vždy bude potřeba standardních způsobů správy uživatelů. Systemd-homed proto není globálním řešením.
Je známo úlovek-22 že je potřeba to vyřešit. Jak jsme uvedli dříve, domovský adresář osoby je dešifrován, kdykoli se uživatel přihlásí. Pokud však někdo vzdáleně přistupuje k počítači přes SSH, nelze odkazovat na klíče SSH v domovském adresáři, protože domovský adresář je do té doby stále zašifrován. člověk se přihlásí. Samozřejmě, že před přihlášením potřebujeme SSH klíče k ověření.
Tento problém rozpoznal tým spravovaný systémem Systemd, ale nenašli jsme žádnou zmínku o opravě tohoto problému. Jsme si jisti, že přijdou s řešením; kdyby to neudělali, byl by to velkolepý pratfall.
Řekněme, že někdo přenese svůj domovský adresář do nového počítače. Pokud již UID na novém počítači používá někdo jiný, bude mu automaticky přiděleno nové UID. U všech jeho souborů bude samozřejmě muset být jejich vlastnictví změněno na nové UID.
V současné době je toto řešeno rekurzivní automatickou aplikací příkaz chown -R. To bude pravděpodobně v budoucnu řešeno jinak, až bude vyvinuto elegantnější schéma. Tento těžkopádný přístup nebere v úvahu démony a procesy, které běží jako ostatní uživatelé.
Kdy se to děje?
To se nyní děje. Změny kódu byly předloženo 20. ledna 2020a byly zahrnuty v sestavení 245 systemd, které bylo dodáno s Ubuntu 20.04 v dubnu 2020.
Chcete-li zjistit, jakou verzi máte, zadejte následující:
systemd --version
Příkaz homectl však ještě není přítomen. Ubuntu 20.04 používá tradiční adresář /home a nepoužívá systemd-homed.
Kdy zahrnou a budou podporovat systemd-homed a homectl, je samozřejmě na rozhodnutí jednotlivých distribucí.
Není tedy potřeba, aby někdo přešel do režimu plných vidlí a hořících pochodní. Protože standardní metody pro správu uživatelů a domovských adresářů zůstanou zachovány, budeme mít stále na výběr.