Lennart Poettering
Mjedisi i drejtorisë kryesore vjen në formën e një skedari imazhi të montuar, të dhënat në të cilat janë të koduara. Kredencialet e përdoruesit janë të lidhura me direktorinë kryesore dhe jo me cilësimet e sistemit - në vend të /etc/passwd dhe /etc/shadow
Parametrat mund të përfshijnë gjithashtu informacione shtesë si çelësat SSH, të dhënat biometrike të vërtetimit, imazhin, emailin, adresën, zonën kohore, gjuhën, procesin dhe kufijtë e kujtesës, flamuj shtesë të montimit (nodev, noexec, nosuid), informacione rreth serverëve IMAP/SMTP të përdoruesve të përdorur , informacion rreth aktivizimit të kontrolleve prindërore, opsioneve rezervë, etj. Një API ofrohet për të kërkuar dhe analizuar parametrat
Caktimi dhe përpunimi i UID/GID bëhet në mënyrë dinamike në çdo sistem lokal me të cilin është lidhur direktoria kryesore. Duke përdorur sistemin e propozuar, përdoruesi mund të mbajë me vete drejtorinë e tij të shtëpisë, për shembull në një flash drive, dhe të marrë një mjedis pune në çdo kompjuter pa krijuar në mënyrë eksplicite një llogari në të (prania e një skedari me imazhin e drejtorisë kryesore çon në sintezën e përdoruesit).
Propozohet të përdoret nënsistemi LUKS2 për enkriptimin e të dhënave, por systemd-homed gjithashtu lejon përdorimin e backend-eve të tjera, për shembull, për drejtoritë e pakriptuara, ndarjet e rrjetit Btrfs, Fscrypt dhe CIFS. Për të menaxhuar drejtoritë portative, propozohet mjeti homectl, i cili ju lejon të krijoni dhe aktivizoni imazhe të drejtorive të shtëpisë, si dhe të ndryshoni madhësinë e tyre dhe të vendosni një fjalëkalim.
Në nivelin e sistemit, puna sigurohet nga komponentët e mëposhtëm:
- systemd-homed.service - menaxhon direktorinë kryesore dhe fut regjistrimet JSON drejtpërdrejt në imazhet e direktorisë kryesore;
- pam_systemd - përpunon parametrat nga profili JSON kur përdoruesi regjistrohet dhe i zbaton ato në kontekstin e sesionit të aktivizuar (kryen vërtetimin, konfiguron variablat e mjedisit, etj.);
- systemd-logind.service - përpunon parametrat nga profili JSON kur përdoruesi regjistrohet, aplikon cilësime të ndryshme të menaxhimit të burimeve dhe vendos kufij;
- nss-systemd - Moduli NSS për glibc, sintetizon të dhënat klasike të NSS bazuar në një profil JSON, duke siguruar pajtueshmëri me API-në e përpunimit të përdoruesit UNIX (/etc/password);
- PID 1 - krijon në mënyrë dinamike përdoruesit (të sintetizuar në analogji me përdorimin e direktivës DynamicUser në njësi) dhe i bën ata të dukshëm për pjesën tjetër të sistemit;
- systemd-userdbd.service - përkthen llogaritë UNIX/glibc NSS në regjistrime JSON dhe ofron një API të unifikuar Varlink për kërkimin dhe përsëritjen mbi të dhënat.
Përparësitë e sistemit të propozuar përfshijnë aftësinë për të menaxhuar përdoruesit kur montoni direktorinë /etc në modalitetin vetëm për lexim, mungesën e nevojës për të sinkronizuar identifikuesit (UID/GID) midis sistemeve, pavarësinë e përdoruesit nga një kompjuter specifik, bllokimin e të dhënave të përdoruesit. gjatë modalitetit të gjumit, përdorimi i enkriptimit dhe metodave moderne të vërtetimit. Systemd-homed është planifikuar të përfshihet në systemd mainstream në versionin 244 ose 245.
Shembull i profilit të përdoruesit JSON:
"autoLogin": e vërtetë,
"detyruese" : {
«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»,
"magazinimi" : "luks",
"uid" : 60233
}
},
"dispozitë" : "i rregullt",
"enforcePasswordPolicy" : false,
"LastChangeusec": 1565951024279735,
"anetar i" : [
"rrota"
],
"i privilegjuar" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"nënshkrimi" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "—— FILLO PUBLIC CEY——\nMCowBQADK2VwAy…=\n——FUNDI PUBLIC KEY——\n"
}
],
"username" : "test",
"status" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec": 1566309342341723,
"rateLimitCount": 1,
"gjendje" : "joaktive",
"service" : "io.systemd.Home",
"Disksize": 161218667776,
"Diskceiling": 191371729408,
"diskFloor": 5242780,
"signedLocally" : e vërtetë
}
}
Burimi: opennet.ru