Agefouert systemd-homed fir portable Heemverzeichnungen ze managen

Lennart Poettering agefouert (PDF) op der All Systems Go 2019 Konferenz, en neie Bestanddeel vum System Manager systemd - systemd-homed. D'Haaptidee vum Projet ass selbstänneg Ëmfeld fir Benotzerdaten ze kreéieren déi tëscht verschiddene Systemer transferéiert kënne ginn ouni sech Suergen iwwer Identifizéierer Synchroniséierung a Vertraulechkeet ze maachen.

D'Hausverzeechnesëmfeld kënnt a Form vun enger montéierter Bilddatei, d'Donnéeën an där verschlësselte sinn. Benotzer Umeldungsinformatioune sinn un den Heemverzeichnis gebonnen anstatt Systemastellungen - amplaz /etc/passwd an /etc/shadow Profil am JSON-Format, am ~/.identity Verzeichnis gespäichert. De Profil enthält d'Parameteren déi néideg sinn fir d'Aarbecht vum Benotzer, dorënner Informatioun iwwer den Numm, Passwuert Hash, Verschlësselungsschlësselen, Quoten an zougewisen Ressourcen. De Profil kann mat enger digitaler Ënnerschrëft op engem externen Yubikey Token gespäichert ginn zertifizéiert.

Parameter kënnen och zousätzlech Informatioun enthalen wéi SSH Schlësselen, biometresch Authentifikatiounsdaten, Bild, E-Mail, Adress, Zäitzon, Sprooch, Prozess a Gedächtnislimiten, zousätzlech Mount Fändelen (nodev, noexec, nosuid), Informatioun iwwer benotzte Benotzer IMAP / SMTP Serveren , Informatioun iwwer d'Erlaabnes vun Elteren Kontrollen, Backupoptiounen, etc. Eng API gëtt zur Verfügung gestallt fir Parameteren ze froen an ze analyséieren Varlink.

UID / GID Aufgab a Veraarbechtung gëtt dynamesch op all lokal System gemaach, mat deem den Heemverzeichnis verbonnen ass. Mat dem proposéierte System kann de Benotzer säin Heemverzeichnis bei him halen, zum Beispill op engem Flash Drive, an en Aarbechtsëmfeld op all Computer kréien ouni explizit e Kont drop ze kreéieren (d'Präsenz vun engem Fichier mat dem Bild vum Heemverzeichnis féiert zur Synthese vum Benotzer).

Et gëtt proposéiert de LUKS2 Subsystem fir Dateverschlësselung ze benotzen, awer systemd-homed erlaabt och d'Benotzung vun anere Backends, zum Beispill fir onverschlësselte Verzeichnisser, Btrfs, Fscrypt an CIFS Netzwierkpartitionen. Fir portable Verzeichnisser ze verwalten, gëtt den Homectl Utility proposéiert, wat Iech erlaabt Biller vun Heemverzeichnisser ze kreéieren an z'aktivéieren, souwéi hir Gréisst z'änneren an e Passwuert astellen.

Um Systemniveau ass d'Aarbecht vun de folgende Komponenten gesuergt:

  • systemd-homed.service - geréiert den Heemverzeichnis an embeds JSON records direkt an Heemverzeichnis Biller;
  • pam_systemd - veraarbecht Parameteren vum JSON Profil wann de Benotzer sech aloggen an applizéiert se am Kontext vun der aktivéierter Sessioun (féiert Authentifikatioun, konfiguréiert Ëmfeldvariablen, etc.);
  • systemd-logind.service - veraarbecht Parameteren aus dem JSON Profil wann de Benotzer aloggen, applizéiert verschidde Ressource Management Astellungen a setzt Grenzen;
  • nss-systemd - NSS Modul fir glibc, synthetiséiert klassesch NSS records baséiert op engem JSON Profil, bitt Réckkompatibilitéit mat der UNIX API fir Benotzerveraarbechtung (/etc/Passwuert);
  • PID 1 - erstellt dynamesch Benotzer (synthetiséiert duerch Analogie mat der Benotzung vun der DynamicUser Direktiv an Eenheeten) a mécht se fir de Rescht vum System siichtbar;
  • systemd-userdbd.service - iwwersetzt UNIX / glibc NSS Konten an JSON records a stellt eng vereenegt Varlink API fir Ufroen an Iteratioun iwwer records.

D'Virdeeler vum proposéierte System enthalen d'Fäegkeet fir Benotzer ze verwalten wann Dir den /etc Verzeichnis am Read-only Modus montéiert, d'Feele vun der Bedierfnes fir Identifizéierer (UID / GID) tëscht Systemer ze synchroniséieren, Benotzeronofhängegkeet vun engem spezifesche Computer, Blockéierung vun Benotzerdaten während Schlofmodus, d'Benotzung vun der Verschlësselung a modernen Authentifikatiounsmethoden. Systemd-homed ass geplangt fir am systemd Mainstream an der Verëffentlechung 244 oder 245 abegraff ze ginn.

Beispill JSON Benotzer Profil:

"autoLogin": richteg,
"bindend" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/home/test",
"imagePath" : "/home/test.home",
"luksCipher" : "aes",
"luksCipherMode" : "xts-plain64",
«luksUUID» : «e63581ba-79fa-4226-b9de-1888393f7573»,
"luksVolumeKeySize" : 32,
«partitionUUID» : «41f9ce04-c927-4b74-a981-c669f93eb4dc»,
"storage" : "luks",
"uid": 60233
}
},
"disposition" : "regelméisseg",
"enforcePasswordPolicy": falsch,
"lastChangeUSec": 1565951024279735,
"memberOf" : [
"rad"
],
"privilegéiert" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
]},
"Ënnerschrëft" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——BEGIN ËFFENTLECH KEY——\nMCowBQADK2VwAy...=\n—— ËFFENTLECH KEY END——\n"
}
],
"userName" : "test",
"Status" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec": 1566309342341723,
"rateLimitCount": 1,
"state" : "inaktiv",
"service" : "io.systemd.Home",
"DiskGréisst": 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"Lokal ënnerschriwwen" : wouer
}
}

Source: opennet.ru

Setzt e Commentaire