പോർട്ടബിൾ ഹോം ഡയറക്ടറികൾ കൈകാര്യം ചെയ്യുന്നതിനായി systemd-homed അവതരിപ്പിച്ചു

ലെനാർട്ട് പോയറ്ററിംഗ് അവതരിപ്പിച്ചു (പീഡിയെഫ്) All Systems Go 2019 കോൺഫറൻസിൽ, സിസ്റ്റം മാനേജർ systemd-യുടെ ഒരു പുതിയ ഘടകം - systemd-homed, ഉപയോക്തൃ ഹോം ഡയറക്‌ടറികൾ പോർട്ടബിൾ ആക്കാനും സിസ്റ്റം ക്രമീകരണങ്ങളിൽ നിന്ന് വേർതിരിക്കാനും ലക്ഷ്യമിടുന്നു. ഐഡന്റിഫയർ സിൻക്രൊണൈസേഷനെക്കുറിച്ചും രഹസ്യാത്മകതയെക്കുറിച്ചും വേവലാതിപ്പെടാതെ വ്യത്യസ്ത സിസ്റ്റങ്ങൾക്കിടയിൽ കൈമാറാൻ കഴിയുന്ന ഉപയോക്തൃ ഡാറ്റയ്‌ക്കായി സ്വയം പര്യാപ്തമായ അന്തരീക്ഷം സൃഷ്ടിക്കുക എന്നതാണ് പദ്ധതിയുടെ പ്രധാന ആശയം.

ഹോം ഡയറക്‌ടറി പരിതസ്ഥിതി ഒരു മൗണ്ടഡ് ഇമേജ് ഫയലിന്റെ രൂപത്തിലാണ് വരുന്നത്, അതിൽ ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്‌തിരിക്കുന്നു. ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ സിസ്റ്റം ക്രമീകരണങ്ങളേക്കാൾ ഹോം ഡയറക്ടറിയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു - പകരം /etc/passwd, /etc/shadow പ്രൊഫൈൽ JSON ഫോർമാറ്റിൽ, ~/.ഐഡന്റിറ്റി ഡയറക്ടറിയിൽ സംഭരിച്ചിരിക്കുന്നു. പേര്, പാസ്‌വേഡ് ഹാഷ്, എൻക്രിപ്ഷൻ കീകൾ, ക്വാട്ടകൾ, അനുവദിച്ച ഉറവിടങ്ങൾ എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഉൾപ്പെടെ ഉപയോക്താവിന്റെ പ്രവർത്തനത്തിന് ആവശ്യമായ പാരാമീറ്ററുകൾ പ്രൊഫൈലിൽ അടങ്ങിയിരിക്കുന്നു. ഒരു ബാഹ്യ Yubikey ടോക്കണിൽ സംഭരിച്ചിരിക്കുന്ന ഡിജിറ്റൽ സിഗ്നേച്ചർ ഉപയോഗിച്ച് പ്രൊഫൈൽ സാക്ഷ്യപ്പെടുത്താവുന്നതാണ്.

SSH കീകൾ, ബയോമെട്രിക് പ്രാമാണീകരണ ഡാറ്റ, ഇമേജ്, ഇമെയിൽ, വിലാസം, സമയ മേഖല, ഭാഷ, പ്രോസസ്സ്, മെമ്മറി പരിധികൾ, അധിക മൗണ്ട് ഫ്ലാഗുകൾ (nodev, noexec, nosuid), ഉപയോഗിച്ച ഉപയോക്തൃ IMAP/SMTP സെർവറുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ തുടങ്ങിയ അധിക വിവരങ്ങളും പാരാമീറ്ററുകളിൽ ഉൾപ്പെട്ടേക്കാം. , രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾ, ബാക്കപ്പ് ഓപ്ഷനുകൾ മുതലായവ പ്രവർത്തനക്ഷമമാക്കുന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ. പാരാമീറ്ററുകൾ അഭ്യർത്ഥിക്കാനും പാഴ്‌സ് ചെയ്യാനും ഒരു API നൽകിയിട്ടുണ്ട് വാർലിങ്ക്.

ഹോം ഡയറക്‌ടറി ബന്ധിപ്പിച്ചിട്ടുള്ള ഓരോ ലോക്കൽ സിസ്റ്റത്തിലും യുഐഡി/ജിഐഡി അസൈൻമെന്റും പ്രോസസ്സിംഗും ചലനാത്മകമായി ചെയ്യപ്പെടുന്നു. നിർദ്ദിഷ്ട സിസ്റ്റം ഉപയോഗിച്ച്, ഉപയോക്താവിന് തന്റെ ഹോം ഡയറക്‌ടറി തന്റെ പക്കൽ സൂക്ഷിക്കാൻ കഴിയും, ഉദാഹരണത്തിന് ഒരു ഫ്ലാഷ് ഡ്രൈവിൽ, കൂടാതെ ഏത് കമ്പ്യൂട്ടറിലും വ്യക്തമായി ഒരു അക്കൗണ്ട് സൃഷ്‌ടിക്കാതെ തന്നെ ഒരു പ്രവർത്തന അന്തരീക്ഷം നേടാനാകും (ഹോം ഡയറക്‌ടറിയുടെ ചിത്രമുള്ള ഒരു ഫയലിന്റെ സാന്നിധ്യം. ഉപയോക്താവിന്റെ സമന്വയത്തിലേക്ക് നയിക്കുന്നു).

ഡാറ്റാ എൻക്രിപ്ഷനായി LUKS2 സബ്സിസ്റ്റം ഉപയോഗിക്കാൻ നിർദ്ദേശിക്കുന്നു, എന്നാൽ systemd-homed മറ്റ് ബാക്കെൻഡുകളുടെ ഉപയോഗവും അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്, എൻക്രിപ്റ്റ് ചെയ്യാത്ത ഡയറക്ടറികൾ, Btrfs, Fscrypt, CIFS നെറ്റ്‌വർക്ക് പാർട്ടീഷനുകൾ. പോർട്ടബിൾ ഡയറക്‌ടറികൾ നിയന്ത്രിക്കുന്നതിന്, ഹോം ഡയറക്‌ടറികളുടെ ഇമേജുകൾ സൃഷ്‌ടിക്കാനും സജീവമാക്കാനും, അവയുടെ വലുപ്പം മാറ്റാനും പാസ്‌വേഡ് സജ്ജമാക്കാനും നിങ്ങളെ അനുവദിക്കുന്ന ഹോംക്‌റ്റ്‌ൽ യൂട്ടിലിറ്റി നിർദ്ദേശിക്കുന്നു.

സിസ്റ്റം തലത്തിൽ, ഇനിപ്പറയുന്ന ഘടകങ്ങളാൽ ജോലി ഉറപ്പാക്കുന്നു:

  • systemd-homed.service - ഹോം ഡയറക്‌ടറി നിയന്ത്രിക്കുകയും JSON റെക്കോർഡുകൾ നേരിട്ട് ഹോം ഡയറക്‌ടറി ചിത്രങ്ങളിലേക്ക് എംബഡ് ചെയ്യുകയും ചെയ്യുന്നു;
  • pam_systemd - ഉപയോക്താവ് ലോഗിൻ ചെയ്യുമ്പോൾ JSON പ്രൊഫൈലിൽ നിന്നുള്ള പാരാമീറ്ററുകൾ പ്രോസസ്സ് ചെയ്യുകയും സജീവമാക്കിയ സെഷന്റെ പശ്ചാത്തലത്തിൽ അവ പ്രയോഗിക്കുകയും ചെയ്യുന്നു (പ്രാമാണീകരണം നടത്തുന്നു, എൻവയോൺമെന്റ് വേരിയബിളുകൾ കോൺഫിഗർ ചെയ്യുന്നു മുതലായവ);
  • systemd-logind.service - ഉപയോക്താവ് ലോഗിൻ ചെയ്യുമ്പോൾ JSON പ്രൊഫൈലിൽ നിന്നുള്ള പാരാമീറ്ററുകൾ പ്രോസസ്സ് ചെയ്യുന്നു, വിവിധ റിസോഴ്സ് മാനേജ്മെന്റ് സജ്ജീകരണങ്ങൾ പ്രയോഗിക്കുകയും പരിധികൾ നിശ്ചയിക്കുകയും ചെയ്യുന്നു;
  • nss-systemd - glibc- നായുള്ള NSS മൊഡ്യൂൾ, ഒരു JSON പ്രൊഫൈലിനെ അടിസ്ഥാനമാക്കി ക്ലാസിക് NSS റെക്കോർഡുകൾ സമന്വയിപ്പിക്കുന്നു, UNIX ഉപയോക്തൃ പ്രോസസ്സിംഗ് API (/ etc/password) മായി പിന്നോക്ക അനുയോജ്യത നൽകുന്നു;
  • PID 1 - ചലനാത്മകമായി ഉപയോക്താക്കളെ സൃഷ്ടിക്കുന്നു (യൂണിറ്റുകളിലെ ഡൈനാമിക് യൂസർ ഡയറക്‌ടീവിന്റെ ഉപയോഗവുമായി സാമ്യമുള്ളത്) അവരെ സിസ്റ്റത്തിന്റെ ബാക്കി ഭാഗങ്ങൾക്ക് ദൃശ്യമാക്കുന്നു;
  • systemd-userdbd.service - UNIX/glibc NSS അക്കൗണ്ടുകൾ JSON റെക്കോർഡുകളിലേക്ക് വിവർത്തനം ചെയ്യുന്നു, കൂടാതെ റെക്കോർഡുകൾ അന്വേഷിക്കുന്നതിനും ആവർത്തിക്കുന്നതിനുമായി ഒരു ഏകീകൃത Varlink API നൽകുന്നു.

/etc ഡയറക്‌ടറി റീഡ്-ഒൺലി മോഡിൽ മൗണ്ട് ചെയ്യുമ്പോൾ ഉപയോക്താക്കളെ നിയന്ത്രിക്കാനുള്ള കഴിവ്, സിസ്റ്റങ്ങൾക്കിടയിൽ ഐഡന്റിഫയറുകൾ (UID/GID) സമന്വയിപ്പിക്കേണ്ടതിന്റെ അഭാവം, ഒരു നിർദ്ദിഷ്ട കമ്പ്യൂട്ടറിൽ നിന്നുള്ള ഉപയോക്തൃ സ്വാതന്ത്ര്യം, ഉപയോക്തൃ ഡാറ്റ തടയൽ എന്നിവ നിർദ്ദിഷ്ട സിസ്റ്റത്തിന്റെ ഗുണങ്ങളിൽ ഉൾപ്പെടുന്നു. സ്ലീപ്പ് മോഡിൽ, എൻക്രിപ്ഷന്റെയും ആധുനിക പ്രാമാണീകരണ രീതികളുടെയും ഉപയോഗം. Systemd-homed 244 അല്ലെങ്കിൽ 245 പതിപ്പിൽ systemd മുഖ്യധാരയിൽ ഉൾപ്പെടുത്താൻ പദ്ധതിയിട്ടിരിക്കുന്നു.

ഉദാഹരണം JSON ഉപയോക്തൃ പ്രൊഫൈൽ:

"ഓട്ടോലോഗിൻ" : ശരി,
"ബൈൻഡിംഗ്" : {
«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»,
"സംഭരണം" : "ലക്സ്",
"uid" : 60233
}
},
"വ്യവഹാരം" : "പതിവ്",
"enforcePassword Policy" : തെറ്റ്,
"lastChangeUSec" : 1565951024279735,
"മെമ്പർഓഫ്" : [
"ചക്രം"
],
"പ്രിവിലേജ്ഡ്" : {
"ഹാഷ് ചെയ്ത പാസ്‌വേഡ്" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"കയ്യൊപ്പ്" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——പബ്ലിക് കീ ആരംഭിക്കുക——\nMCowBQADK2VwAy…=\n——അവസാന പൊതു കീ——\n"
}
],
"ഉപയോക്തൃനാമം" : "ടെസ്റ്റ്",
"പദവി" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"റേറ്റ് ലിമിറ്റ് കൗണ്ട്" : 1,
"സംസ്ഥാനം" : "നിഷ്ക്രിയം",
"സേവനം" : "io.systemd.Home",
"diskSize" : 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"പ്രാദേശികമായി ഒപ്പിട്ടു" : ശരി
}
}

അവലംബം: opennet.ru

ഒരു അഭിപ്രായം ചേർക്കുക