Lennart Poettering
Kodukataloogi keskkond on ühendatud pildifaili kujul, milles olevad andmed on krüptitud. Kasutajate mandaadid on seotud kodukataloogiga, mitte süsteemiseadetega – kataloogide /etc/passwd ja /etc/shadow asemel
Parameetrid võivad sisaldada ka lisateavet, nagu SSH-võtmed, biomeetrilised autentimisandmed, pilt, e-post, aadress, ajavöönd, keel, protsessi- ja mälupiirangud, täiendavad paigalduslipud (nodev, noexec, nosuid), teave kasutatud kasutaja IMAP/SMTP-serverite kohta. , teave vanemliku järelevalve lubamise, varundusvalikute jms kohta. Parameetrite taotlemiseks ja sõelumiseks on saadaval API
UID/GID määramine ja töötlemine toimub dünaamiliselt igas kohalikus süsteemis, millega kodukataloog on ühendatud. Kavandatava süsteemi abil saab kasutaja hoida oma kodukataloogi endaga kaasas, näiteks Flash-draivil ja saada töökeskkonna mis tahes arvutis, ilma et peaks seal selgesõnaliselt kontot looma (kodukataloogi pildiga faili olemasolu viib kasutaja sünteesini).
Andmete krüptimiseks tehakse ettepanek kasutada alamsüsteemi LUKS2, kuid systemd-homed võimaldab kasutada ka muid taustaprogramme, näiteks krüpteerimata kataloogide, Btrfs, Fscrypt ja CIFS võrgusektsioonide jaoks. Kaasaskantavate kataloogide haldamiseks pakutakse välja utiliit homectl, mis võimaldab luua ja aktiveerida kodukataloogide pilte, samuti muuta nende suurust ja määrata parooli.
Süsteemi tasemel tagavad töö järgmised komponendid:
- systemd-homed.service – haldab kodukataloogi ja manustab JSON-kirjeid otse kodukataloogi kujutistesse;
- pam_systemd – töötleb kasutaja sisselogimisel parameetreid JSON-profiilist ja rakendab neid aktiveeritud seansi kontekstis (teostab autentimist, konfigureerib keskkonnamuutujaid jne);
- systemd-logind.service – töötleb kasutaja sisselogimisel parameetreid JSON-profiilist, rakendab erinevaid ressursihalduse sätteid ja seab piirangud;
- nss-systemd – NSS-moodul glibc jaoks, sünteesib klassikalisi NSS-kirjeid JSON-profiili alusel, pakkudes kasutajate töötlemiseks tagasiühilduvust UNIX API-ga (/etc/password);
- PID 1 – loob dünaamiliselt kasutajaid (sünteesitakse analoogia põhjal DynamicUser direktiivi kasutamisega ühikutes) ja teeb nad ülejäänud süsteemile nähtavaks;
- systemd-userdbd.service – tõlgib UNIX/glibc NSS-kontod JSON-kirjeteks ja pakub ühtset Varlink API-d päringute tegemiseks ja kirjete itereerimiseks.
Kavandatava süsteemi eeliste hulka kuulub võimalus hallata kasutajaid kataloogi /etc ühendamisel kirjutuskaitstud režiimis, identifikaatorite (UID/GID) süsteemidevahelise sünkroonimise vajaduse puudumine, kasutaja sõltumatus konkreetsest arvutist, kasutajaandmete blokeerimine. puhkerežiimis krüptimise ja kaasaegsete autentimismeetodite kasutamine. Systemd-homed plaanitakse kaasata systemd mainstreami versioonis 244 või 245.
JSON-i kasutajaprofiili näide:
"autoLogin" : tõsi,
"sidumine" : {
«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»,
"salvestusruum" : "luks",
"uid": 60233
}
},
"disposition" : "tavaline",
"enforcePasswordPolicy": vale,
"lastChangeUSec" : 1565951024279735,
"liige" : [
"ratas"
],
"privilegeeritud": {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"allkiri" : [
{
"andmed" : "LU/HeVrPZSzi3M3J...==",
"võti" : "——ALUSTAGE AVALIK VÕTI——\nMCowBQADK2VwAy…=\n——LÕPETA AVALIK VÕTI——\n"
}
],
"userName" : "test",
"staatus" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "mitteaktiivne",
"service" : "io.systemd.Home",
"diskSize": 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally" : tõsi
}
}
Allikas: opennet.ru