Lennart Poettering
Hjemmekatalogmiljøet kommer i form av en montert bildefil, hvor dataene er kryptert. Brukerlegitimasjon er knyttet til hjemmekatalogen i stedet for systeminnstillinger - i stedet for /etc/passwd og /etc/shadow
Parametre kan også inkludere tilleggsinformasjon som SSH-nøkler, biometriske autentiseringsdata, bilde, e-post, adresse, tidssone, språk, prosess og minnegrenser, ekstra monteringsflagg (nodev, noexec, nosuid), informasjon om brukte bruker-IMAP/SMTP-servere , informasjon om aktivering av foreldrekontroll, sikkerhetskopieringsalternativer osv. En API er gitt for å be om og analysere parametere
UID/GID-tilordning og -behandling gjøres dynamisk på hvert lokale system som hjemmekatalogen er koblet til. Ved å bruke det foreslåtte systemet kan brukeren holde hjemmekatalogen hos seg, for eksempel på en Flash-stasjon, og få et arbeidsmiljø på hvilken som helst datamaskin uten eksplisitt å opprette en konto på den (tilstedeværelsen av en fil med bildet av hjemmekatalogen fører til syntese av brukeren).
Det foreslås å bruke delsystemet LUKS2 for datakryptering, men systemd-homed tillater også bruk av andre backends, for eksempel for ukrypterte kataloger, Btrfs, Fscrypt og CIFS nettverkspartisjoner. For å administrere bærbare kataloger, foreslås homectl-verktøyet, som lar deg lage og aktivere bilder av hjemmekataloger, samt endre størrelsen og angi et passord.
På systemnivå er arbeidet sikret av følgende komponenter:
- systemd-homed.service - administrerer hjemmekatalogen og bygger inn JSON-poster direkte i hjemmekatalogbilder;
- pam_systemd - behandler parametere fra JSON-profilen når brukeren logger på og bruker dem i sammenheng med den aktiverte økten (utfører autentisering, konfigurerer miljøvariabler, etc.);
- systemd-logind.service - behandler parametere fra JSON-profilen når brukeren logger på, bruker ulike ressursadministrasjonsinnstillinger og setter grenser;
- nss-systemd - NSS-modul for glibc, syntetiserer klassiske NSS-poster basert på en JSON-profil, og gir bakoverkompatibilitet med UNIX-brukerbehandlings-API (/etc/password);
- PID 1 - oppretter brukere dynamisk (syntetisert analogt med bruken av DynamicUser-direktivet i enheter) og gjør dem synlige for resten av systemet;
- systemd-userdbd.service - oversetter UNIX/glibc NSS-kontoer til JSON-poster og gir en enhetlig Varlink API for spørring og iterering over poster.
Fordelene med det foreslåtte systemet inkluderer muligheten til å administrere brukere når du monterer /etc-katalogen i skrivebeskyttet modus, fraværet av behovet for å synkronisere identifikatorer (UID/GID) mellom systemer, brukeruavhengighet fra en spesifikk datamaskin, blokkering av brukerdata i hvilemodus, bruk av kryptering og moderne autentiseringsmetoder. Systemd-homed er planlagt inkludert i systemd mainstream i utgivelse 244 eller 245.
Eksempel på JSON-brukerprofil:
"autoLogin" : sant,
"binding" : {
«15e19cd24e004b949ddaac60c74aa165» : {
"fileSystemType" : "ext4"
«fileSystemUUID» : «758e88c8-5851-4a2a-b98f-e7474279c111»,
"gid": 60232,
"homeDirectory" : "/hjem/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" : "vanlig",
"enforcePasswordPolicy" : usant,
"lastChangeUSec" : 1565951024279735,
"medlem av" : [
"hjul"
],
"privilegert" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"signatur" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——BEGIN OFFENTLIG NØKKEL——\nMCowBQADK2VwAy...=\n——SLUT OFFENTLIG NØKKEL——\n"
}
],
"brukernavn" : "test",
"status" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "inaktiv",
"service" : "io.systemd.Home",
"diskstørrelse" : 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signertLokalt" : sant
}
}
Kilde: opennet.ru