Gipaila ang systemd-homed sa pagdumala sa madaladala nga mga direktoryo sa balay

Lennart Poettering gipaila (PDF) sa All Systems Go 2019 nga komperensya, usa ka bag-ong bahin sa system manager systemd - systemd-homed, nga gitumong sa paghimo sa mga direktoryo sa balay sa user nga madaladala ug bulag sa mga setting sa sistema. Ang panguna nga ideya sa proyekto mao ang paghimo sa kaugalingon nga igo nga mga palibot alang sa datos sa tiggamit nga mahimong ibalhin taliwala sa lainlaing mga sistema nga wala mabalaka bahin sa pag-synchronize sa pagkilala ug pagkakompidensyal.

Ang palibot sa direktoryo sa balay moabut sa porma sa usa ka naka-mount nga file sa imahe, ang datos diin gi-encrypt. Ang mga kredensyal sa tiggamit nahigot sa direktoryo sa balay kaysa sa mga setting sa sistema - imbes sa /etc/passwd ug /etc/shadow profile sa JSON format, gitipigan sa ~/.identity directory. Ang profile naglangkob sa mga parameter nga gikinahanglan alang sa trabaho sa user, lakip ang impormasyon bahin sa ngalan, password hash, encryption keys, quota, ug gigahin nga mga kapanguhaan. Ang profile mahimong sertipikado sa usa ka digital nga pirma nga gitipigan sa usa ka eksternal nga Yubikey token.

Ang mga parameter mahimo usab nga maglakip sa dugang nga impormasyon sama sa SSH keys, biometric authentication data, imahe, email, address, time zone, lengguwahe, proseso ug mga limitasyon sa memorya, dugang nga mount flags (nodev, noexec, nosuid), impormasyon mahitungod sa gigamit nga user IMAP/SMTP servers , impormasyon bahin sa pagpagana sa mga kontrol sa ginikanan, mga kapilian sa pag-backup, ug uban pa. Gihatag ang usa ka API sa pagpangutana ug pag-parse sa mga parameter Varlink.

Ang buluhaton ug pagproseso sa UID/GID gihimo nga dinamiko sa matag lokal nga sistema diin konektado ang direktoryo sa balay. Gamit ang gisugyot nga sistema, mahimo’g itago sa gumagamit ang iyang direktoryo sa balay uban kaniya, pananglitan sa usa ka Flash drive, ug makakuha usa ka palibot nga nagtrabaho sa bisan unsang kompyuter nga wala’y klaro nga paghimo usa ka account niini (ang presensya sa usa ka file nga adunay imahe sa direktoryo sa balay. modala ngadto sa synthesis sa user).

Gisugyot nga gamiton ang subsystem sa LUKS2 alang sa pag-encrypt sa datos, apan gitugotan usab sa systemd-homed ang paggamit sa ubang mga backend, pananglitan, alang sa mga dili naka-encrypt nga mga direktoryo, Btrfs, Fscrypt ug mga partisyon sa network sa CIFS. Aron madumala ang madaladala nga mga direktoryo, ang homectl utility gisugyot, nga nagtugot kanimo sa paghimo ug pagpaaktibo sa mga hulagway sa mga direktoryo sa balay, ingon man usab sa pag-usab sa ilang gidak-on ug pagtakda og password.

Sa lebel sa sistema, ang trabaho gisiguro sa mga musunud nga sangkap:

  • systemd-homed.service - nagdumala sa direktoryo sa balay ug nag-embed sa mga rekord sa JSON direkta sa mga imahe sa direktoryo sa balay;
  • pam_systemd - nagproseso sa mga parameter gikan sa profile sa JSON kung ang user nag-log in ug gipadapat kini sa konteksto sa gi-aktibo nga sesyon (naghimo sa pag-authenticate, nag-configure sa mga variable sa palibot, ug uban pa);
  • systemd-logind.service - nagproseso sa mga parametro gikan sa JSON profile kung ang user mag-log in, magamit ang lainlaing mga setting sa pagdumala sa kapanguhaan ug magtakda og mga limitasyon;
  • nss-systemd - NSS module para sa glibc, nag-synthesize sa classic NSS records base sa JSON profile, naghatag ug backward compatibility sa UNIX user processing API (/etc/password);
  • PID 1 - dinamikong nagmugna sa mga tiggamit (gi-synthesize pinaagi sa analogy sa paggamit sa DynamicUser nga direktiba sa mga yunit) ug naghimo kanila nga makita sa ubang bahin sa sistema;
  • systemd-userdbd.service - naghubad sa UNIX/glibc NSS accounts ngadto sa JSON records ug naghatag ug hiniusang Varlink API para sa pagpangutana ug pag-uli sa mga rekord.

Ang mga bentaha sa gisugyot nga sistema naglakip sa abilidad sa pagdumala sa mga tiggamit sa dihang nag-mount sa /etc nga direktoryo sa read-only mode, ang pagkawala sa panginahanglan sa pag-synchronize sa mga identifier (UID/GID) tali sa mga sistema, ang kagawasan sa user gikan sa usa ka piho nga kompyuter, pag-ali sa data sa user atol sa sleep mode, ang paggamit sa encryption ug modernong mga pamaagi sa pag-authenticate. Ang Systemd-homed giplano nga ilakip sa systemd mainstream sa pagpagawas sa 244 o 245.

Pananglitan nga profile sa gumagamit sa JSON:

"autoLogin": tinuod,
"pagbugkos" : {
«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": "regular",
"enforcePasswordPolicy" : bakak,
"LastChangeUSec" : 1565951024279735,
"memberOf" : [
"ligid"
],
"pribilehiyo" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
]},
"pirma" : [
{
"data" : "LU/HeVrPZSzi3M3J...=",
"key" : "——SUGOD PUBLIC KEY——\nMCowBQADK2VwAy…=\n——TAPUBONG PUBLIC KEY——\n"
}
],
"userName" : "test",
"status" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"estado": "dili aktibo",
"service" : "io.systemd.Home",
"Disk Size" : 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally" : tinuod
}
}

Source: opennet.ru

Idugang sa usa ka comment