Барои идоракунии феҳристҳои сайёри хонагӣ systemd-homed ҷорӣ карда шуд

Ленарт Поттеринг муаррифӣ кард (PDF) дар конфронси All Systems Go 2019, ҷузъи нави менеҷери система - системам хонагй, ба он нигаронида шудааст, ки феҳристҳои хонагии корбаронро сайёр ва аз танзимоти система ҷудо кунанд. Идеяи асосии лоиҳа эҷоди муҳитҳои худкифо барои маълумоти корбарон мебошад, ки метавонанд байни системаҳои гуногун бидуни ташвиш дар бораи ҳамоҳангсозии идентификаторҳо ва махфият интиқол дода шаванд.

Муҳити феҳристи хонагӣ дар шакли файли тасвири насбшуда, ки маълумот дар он рамзгузорӣ шудааст, меояд. Маълумоти эътимоднокии корбар ба феҳристи хонагӣ вобаста аст, на танзимоти система - ба ҷои /etc/passwd ва /etc/shadow профил дар формати JSON, дар феҳристи ~/.identity нигоҳ дошта мешавад. Профил дорои параметрҳои зарурӣ барои кори корбар аст, аз ҷумла маълумот дар бораи ном, хэш парол, калидҳои рамзгузорӣ, квотаҳо ва захираҳои ҷудошуда. Профилро бо имзои рақамӣ, ки дар аломати берунии Yubikey нигоҳ дошта мешавад, тасдиқ кардан мумкин аст.

Параметрҳо инчунин метавонанд маълумоти иловагӣ ба монанди калидҳои SSH, маълумоти аутентификатсияи биометрӣ, тасвир, почтаи электронӣ, суроға, минтақаи вақт, забон, маҳдудиятҳои раванд ва хотира, парчамҳои иловагии насб (nodev, noexec, nosuid), маълумот дар бораи серверҳои IMAP/SMTP корбарро дар бар гиранд. , маълумот дар бораи фаъол кардани назорати волидайн, имконоти нусхабардорӣ ва ғайра. API барои дархост ва таҳлили параметрҳо дода мешавад Варлинк.

Таъин ва коркарди UID/GID дар ҳар як системаи маҳаллӣ, ки феҳристи хонагӣ ба он пайваст аст, ба таври динамикӣ анҷом дода мешавад. Бо истифода аз системаи пешниҳодшуда, корбар метавонад феҳристи хонагии худро бо худ нигоҳ дорад, масалан, дар флеши флешдор ва бидуни эҷоди ҳисоб дар он (мавҷудияти файл бо тасвири феҳристи хонагӣ) дар ҳама гуна компютер муҳити корӣ пайдо кунад. ба синтези корбар оварда мерасонад).

Пешниҳод карда мешавад, ки зерсистемаи LUKS2 барои рамзгузории маълумот истифода шавад, аммо systemd-homed инчунин имкон медиҳад, ки дигар пуштибонҳо, масалан, барои директорияҳои рамзнашуда, Btrfs, Fscrypt ва CIFS қисмҳои шабакавӣ истифода шаванд. Барои идоракунии директорияҳои сайёр, утилитаи homectl пешниҳод карда мешавад, ки ба шумо имкон медиҳад тасвирҳои каталогҳои хонагӣ эҷод ва фаъол созед, инчунин андозаи онҳоро тағир диҳед ва парол таъин кунед.

Дар сатҳи система кор бо ҷузъҳои зерин таъмин карда мешавад:

  • systemd-homed.service - директорияи хонагиро идора мекунад ва сабтҳои JSON-ро мустақиман ба тасвирҳои феҳристи хонагӣ ҷойгир мекунад;
  • pam_systemd - ҳангоми ворид шудани корбар параметрҳоро аз профили JSON коркард мекунад ва онҳоро дар контексти сеанси фаъол истифода мебарад (аслиятро иҷро мекунад, тағирёбандаҳои муҳити атрофро танзим мекунад ва ғ.);
  • systemd-logind.service - ҳангоми ворид шудани корбар параметрҳоро аз профили JSON коркард мекунад, танзимоти гуногуни идоракунии захираҳоро татбиқ мекунад ва маҳдудиятҳоро муқаррар мекунад;
  • nss-systemd - модули NSS барои glibc, сабтҳои классикии NSS-ро дар асоси профили JSON синтез мекунад, ки мутобиқати ақибро бо API коркарди корбари UNIX (/etc/password) таъмин мекунад;
  • PID 1 - корбаронро ба таври динамикӣ эҷод мекунад (аз рӯи аналогия бо истифодаи дастури DynamicUser дар воҳидҳо синтез карда мешавад) ва онҳоро ба қисми боқимондаи система намоён месозад;
  • systemd-userdbd.service - ҳисобҳои UNIX/glibc NSS-ро ба сабтҳои JSON тарҷума мекунад ва API-и ягонаи Varlink-ро барои дархост ва такрори сабтҳо таъмин мекунад.

Бартариҳои системаи пешниҳодшуда қобилияти идоракунии корбаронро ҳангоми насб кардани феҳристи /etc дар ҳолати танҳо барои хондан, набудани зарурати ҳамоҳангсозии идентификаторҳо (UID/GID) байни системаҳо, мустақилияти корбар аз компютери мушаххас, бастани маълумоти корбар иборат аст. ҳангоми хоб, истифодаи рамзгузорӣ ва усулҳои муосири аутентификатсия. Ба нақша гирифта шудааст, ки Systemd-homed ба системаи асосии система дар нашри 244 ё 245 дохил карда шавад.

Намунаи профили корбари 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»,
"storage": "luks",
"uid": 60233
}
},
"disposition": "муқаррарӣ",
"enforcePasswordPolicy": бардурӯғ,
"lastChangeUSec": 1565951024279735,
"узви" : [
"чарх"
],
"имтиёзнок": {
"hashedPassword": [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"имзо" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——БАГИН КАЛИДИ ҶУМЪИЯТӢ——\nMCowBQADK2VwAy…=\n——КАЛИДҲОИ ОММА ——\n"
}
],
"userName" : "озмоиш",
"вазъ": {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec": 1566309343044322,
"rateLimitBeginUSec": 1566309342341723,
"rateLimitCount" : 1,
"state": "ғайрифаъол",
"service": "io.systemd.Home",
"андозаи диск": 161218667776,
"diskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally": дуруст
}
}

Манбаъ: opennet.ru

Илова Эзоҳ