"...Výchozí konfiguraci systemd mohou změnit nainstalované programy umístěním konfiguračního souboru do /usr/lib/systemd/system.conf.d/..."
Tohle je jedna z tech pitomosti, co me na systemd opravdu se*e! Kterej pitomec prisel s tou geni(t)alni myslenkou, ze konfiguracni (!!!) soubor nacpe nekam do /usr/lib, a v /etc bude jenom link? Jo, ja vim: Poettering...
Problem je v tom, ze to jaksi odporuje FHS. A tu tvou "vyhodu" opravdu nechapu: to jako kdyz balicek neco nacpe do /lib, je to ok, jenze kdyz chce neco zapsat do /etc, je to spatne?
Mimochodem, zajmave, ze RedHat u RHEL deklaruje ze se drzi FHS:
"...Red Hat Enterprise Linux uses the Filesystem Hierarchy Standard (FHS) file system structure, which defines the names, locations, and permissions for many file types and directories..."
Vypada to tak, Poettering-squad jeste nestihl dostatecne infikovat "The Linux Foundation" aby prosadil upravu FHS dle jeho nazoru. To nic, na to taky dojde...
Jiste, ne pro vsechny, ovsem pro konfiguracni soubory ano (cit.):
"...The /etc hierarchy contains configuration files..."
Jo a kdyz uz cituju FHS, tak je tam taky neco zajimaveho o /usr:
".../usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and must not be written to..."
Tady mas jeden sakra dobrej duvod, proc by konfigurace nemela byt v /usr: protoze se pak neda /usr sdilet mezi jinymi hosty (ktere muzou vyzadovat rozdilnou konfiguraci pro systemd)!
V /etc nejsou linky konfigurace do /usr/lib, systemd čte oba adresáře (nějaké linky tam jsou, ale to slouží pro aliasy, třeba že sshd.service je totéž jako ssh.service). Pokud vytvoříš /etc/systemd/system.conf, tak místo /usr/lib/systemd/system.conf se bude používat to. Můžeš taky vytvořit /etc/systemd/system.conf.d/něco.conf a změnit jen některá nastavení, zbytek se pak bude tahat z /usr/lib/systemd/system.conf.
Taky bych to radši viděl třeba v (oživeném) /usr/etc. Ale jinak ta kolize s FHS je diskutabilní, protože /usr/lib není jen pro knihovny. Je to adresář pro platform specific data. A defaultní nastavení targetů a některé unity jsou závislé na platformě. Takže to tam asi opravdu patří.
Ono se na to dá totiž pohlížet i tím pohledem, že není rozdíl mezi defaultem v externím souboru a defaultem přímo zakompilovaným do knihovny/binárky. A ta už by tam patřila zcela určitě.
Druhý pohled je ten, že defaulty v /etc mají zásadní nevýhodu pro balíčkování a updaty. Balíčkovací systém nemůže jednoduše nahradit soubor v /etc novou verzí, protože existují nějaké lokální změny. Pak vznikají .rpmnew a podobně. V tomto ohledu je separádní default a separátní override soubor docela výhodný.
Se systemd v mnohém nesouhlasím, ale zrovna ta snaha o stateless systém (v /etc jen lokální změny s možností snadného resetu) nás vrací k read only /usr, což považuji za správné. A nahrazení fstab a passwd něčím ve stylu passwd.d bych třeba také neviděl tak černě, spousta balíků přidává uživatele a manipulace s passwd souborem v instalačních skriptech byla vždycky bolestivá.
Ano, spoustu projektů má defaultní konfiguraci u sebe v /usr/lib. Nicméně do /etc dávají soubory s popisem konfigurací a obvykle zakomentovanými defaulty, které je možné v /etc změnit. A pak některé umí ještě user-specific konfiguraci v HOME/.xxx, pokud je to relevantní.
S pouhým symlinkem z /etc do /usr/... jsem se ještě nesetkal...