Lennart Poettering
Die tuisgids-omgewing kom in die vorm van 'n gemonteerde beeldlêer, die data waarin geïnkripteer is. Gebruikersbewyse is gekoppel aan die tuisgids eerder as stelselinstellings - in plaas van /etc/passwd en /etc/shadow
Parameters kan ook bykomende inligting insluit soos SSH-sleutels, biometriese verifikasiedata, beeld, e-pos, adres, tydsone, taal-, proses- en geheuelimiete, bykomende bergvlae (nodev, noexec, nosuid), inligting oor gebruikte gebruiker IMAP/SMTP-bedieners , inligting oor die aktivering van ouerkontroles, rugsteunopsies, ens. 'n API word verskaf om parameters te versoek en te ontleed
UID/GID-toewysing en verwerking word dinamies gedoen op elke plaaslike stelsel waaraan die tuisgids gekoppel is. Deur die voorgestelde stelsel te gebruik, kan die gebruiker sy tuisgids by hom hou, byvoorbeeld op 'n Flash Drive, en 'n werksomgewing op enige rekenaar kry sonder om uitdruklik 'n rekening daarop te skep (die teenwoordigheid van 'n lêer met die beeld van die tuisgids lei tot sintese van die gebruiker).
Daar word voorgestel om die LUKS2-substelsel vir data-enkripsie te gebruik, maar systemd-homed laat ook die gebruik van ander backends toe, byvoorbeeld vir ongeënkripteerde gidse, Btrfs, Fscrypt en CIFS-netwerkpartisies. Om draagbare gidse te bestuur, word die homectl-hulpprogram voorgestel, wat jou toelaat om beelde van tuisgidse te skep en te aktiveer, asook hul grootte te verander en 'n wagwoord in te stel.
Op stelselvlak word werk verseker deur die volgende komponente:
- systemd-homed.service - bestuur die tuisgids en sluit JSON-rekords direk in tuisgidsbeelde in;
- pam_systemd - verwerk parameters vanaf die JSON-profiel wanneer die gebruiker aanmeld en pas dit toe in die konteks van die geaktiveerde sessie (voer verifikasie uit, stel omgewingsveranderlikes op, ens.);
- systemd-logind.service - verwerk parameters vanaf die JSON-profiel wanneer die gebruiker aanmeld, pas verskeie hulpbronbestuurinstellings toe en stel limiete;
- nss-systemd - NSS-module vir glibc, sintetiseer klassieke NSS-rekords gebaseer op 'n JSON-profiel, wat terugwaartse versoenbaarheid bied met die UNIX-gebruikersverwerkings-API (/etc/password);
- PID 1 - skep gebruikers dinamies (gesintetiseer volgens analogie met die gebruik van die DynamicUser-aanwysing in eenhede) en maak hulle sigbaar vir die res van die stelsel;
- systemd-userdbd.service - vertaal UNIX/glibc NSS-rekeninge in JSON-rekords en verskaf 'n verenigde Varlink API vir navrae en herhaling oor rekords.
Die voordele van die voorgestelde stelsel sluit in die vermoë om gebruikers te bestuur wanneer die /etc-gids in leesalleenmodus gemonteer word, die afwesigheid van die behoefte om identifiseerders (UID/GID) tussen stelsels te sinchroniseer, gebruikeronafhanklikheid van 'n spesifieke rekenaar, blokkering van gebruikersdata tydens slaapmodus, die gebruik van enkripsie en moderne verifikasiemetodes. Systemd-homed word beplan om ingesluit te word in systemd hoofstroom in vrystelling 244 of 245.
Voorbeeld JSON-gebruikerprofiel:
"autoLogin": waar,
"bindend" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/huis/toets",
"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" : "gereelde",
"enforcePasswordPolicy": vals,
"lastChangeUSec": 1565951024279735,
"lid van" : [
"wiel"
],
"bevoorreg" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"handtekening" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——BEGIN PUBLIEKE SLEUTEL——\nMCowBQADK2VwAy...=\n——END OPENBARE SLEUTEL——\n"
}
],
"gebruikersnaam" : "toets",
"status" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGood AuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "onaktief",
"service" : "io.systemd.Home",
"skyfgrootte": 161218667776,
"skyfCeiling": 191371729408,
"diskFloor": 5242780,
"Locally onderteken" : waar
}
}
Bron: opennet.ru