Hoʻokomo ʻia ʻo systemd-homed e hoʻokele i nā papa kuhikuhi home portable

Lennart Poettering hoopuka (PDF) ma ka hui All Systems Go 2019, kahi mea hou o ka system manager systemd - systemd-homed, i manaʻo e hana i nā papa kuhikuhi home mea hoʻohana i lawe a hoʻokaʻawale ʻia mai nā hoʻonohonoho ʻōnaehana. ʻO ka manaʻo nui o ka papahana ʻo ka hana ʻana i nā ʻona ponoʻī no ka ʻikepili mea hoʻohana i hiki ke hoʻololi ʻia ma waena o nā ʻōnaehana like ʻole me ka hopohopo ʻole e pili ana i ka synchronization a me ka hūnā.

Hiki mai ka papa kuhikuhi home ma ke ʻano o kahi faila kiʻi i kau ʻia, ka ʻikepili i hoʻopili ʻia. Hoʻopili ʻia nā ʻike mea hoʻohana i ka papa kuhikuhi home ma mua o nā hoʻonohonoho ʻōnaehana - ma kahi o /etc/passwd a me /etc/shadow РїїЂѕѕ „„ "СЊ ma ka palapala JSON, mālama ʻia ma ka papa kuhikuhi ~/.identity. Aia ka ʻaoʻao i nā ʻāpana e pono ai no ka hana a ka mea hoʻohana, me ka ʻike e pili ana i ka inoa, password hash, encryption key, quotas, a me nā kumuwaiwai i hoʻokaʻawale ʻia. Hiki ke hōʻoia ʻia ka ʻaoʻao me kahi pūlima kikohoʻe i mālama ʻia ma kahi hōʻailona Yubikey waho.

Hiki i nā palena ke hoʻokomo i nā ʻike hou aʻe e like me nā kī SSH, ka ʻikepili hōʻoia biometric, ke kiʻi, ka leka uila, ka helu wahi, ka palena manawa, ka ʻōlelo, ke kaʻina hana a me nā palena hoʻomanaʻo, nā hae mauna hou (nodev, noexec, nosuid), ʻike e pili ana i nā mea hoʻohana IMAP/SMTP server. , ʻike e pili ana i ka ʻae ʻana i nā mana makua, nā koho hoʻihoʻi, etc. Hāʻawi ʻia kahi API no ke noi ʻana a hoʻopau i nā ʻāpana Varlink.

Hana ʻia ka hana a me ka hana ʻana o UID/GID ma kēlā me kēia ʻōnaehana kūloko kahi e pili ai ka papa kuhikuhi home. Ke hoʻohana nei i ka ʻōnaehana i manaʻo ʻia, hiki i ka mea hoʻohana ke mālama i kāna papa kuhikuhi home me ia, no ka laʻana ma kahi Flash drive, a loaʻa i kahi wahi hana ma kekahi kamepiula me ka ʻole o ka hoʻokumu ʻana i kahi moʻokāki ma luna (ke alo o kahi faila me ke kiʻi o ka papa kuhikuhi home. alakaʻi i ka synthesis o ka mea hoʻohana).

Manaʻo ʻia e hoʻohana i ka subsystem LUKS2 no ka hoʻopili ʻana i ka ʻikepili, akā ʻae ʻia ka systemd-homed i ka hoʻohana ʻana i nā backends ʻē aʻe, no ka laʻana, no nā papa kuhikuhi unencrypted, Btrfs, Fscrypt a me nā ʻāpana pūnaewele CIFS. No ka hoʻokele ʻana i nā papa kuhikuhi portable, ua noi ʻia ka homectl utility, e hiki ai iā ʻoe ke hana a hoʻōla i nā kiʻi o nā papa kuhikuhi home, a me ka hoʻololi ʻana i ko lākou nui a hoʻonohonoho i kahi ʻōlelo huna.

Ma ka pae ʻōnaehana, hōʻoia ʻia ka hana e nā ʻāpana penei:

  • systemd-homed.service - mālama i ka papa kuhikuhi home a hoʻokomo pololei i nā moʻolelo JSON i nā kiʻi papa kuhikuhi home;
  • pam_systemd - kaʻina hana mai ka ʻaoʻao JSON i ka wā e komo ai ka mea hoʻohana a hoʻohana iā lākou i loko o ka pōʻaiapili o ka hālāwai i hoʻāla ʻia (hana i ka hōʻoia, hoʻonohonoho i nā ʻano hoʻololi kaiapuni, etc.);
  • systemd-logind.service - kaʻina hana i nā ʻāpana mai ka ʻaoʻao JSON i ka wā e komo ai ka mea hoʻohana, e hoʻopili i nā hoʻonohonoho hoʻokele waiwai like ʻole a kau i nā palena;
  • nss-systemd - NSS module for glibc, synthesizes classic NSS records based on a JSON profile, provide backward compatibility with the UNIX API no ka mea hoʻohana (/etc/password);
  • PID 1 - hana ikaika i nā mea hoʻohana (synthesized e ka hoʻohālikelike me ka hoʻohana ʻana i ke kuhikuhi DynamicUser i nā ʻāpana) a ʻike iā lākou i ke koena o ka ʻōnaehana;
  • systemd-userdbd.service - unuhi i nā moʻokāki UNIX/glibc NSS i loko o nā moʻolelo JSON a hāʻawi i kahi Varlink API i hui pū ʻia no ka nīnau ʻana a me ka ʻike ʻana i nā moʻolelo.

ʻO nā mea maikaʻi o ka ʻōnaehana i manaʻo ʻia e pili ana i ka hiki ke hoʻokele i nā mea hoʻohana i ka wā e kau ana i ka papa kuhikuhi / etc ma ke ʻano heluhelu wale nō, ka nele o ka pono e hoʻohui i nā mea hōʻike (UID/GID) ma waena o nā ʻōnaehana, ke kūʻokoʻa o ka mea hoʻohana mai kahi kamepiula kikoʻī, ke kāohi ʻana i ka ʻikepili mea hoʻohana. i ka wā hiamoe, ka hoʻohana ʻana i ka hoʻopunipuni a me nā ʻano hana hōʻoia hou. Hoʻolālā ʻia ʻo Systemd-homed e hoʻokomo i loko o ka systemd mainstream i ka hoʻokuʻu ʻana 244 a i ʻole 245.

laʻana moʻolelo mea hoʻohana JSON:

"autoLogin" : ʻoiaʻiʻo,
"paʻa" : {
«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" : "maʻa mau",
"enforcePasswordPolicy": hewa,
"lastChangeUSec" : 1565951024279735,
"memberOf" : [
" huila "
],
"pono" : {
"HashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"kaulima" : [
{
"data" : "LU/HeVrPZSzi3M3J...=",
"key" : "——E HOOMAKA I KE KI LEHULEHU——\nMCowBQADK2VwAy…=\n——E HOPE KE KI LEHULEHU——\n"
}
],
"userName" : "hōʻoia",
"kūlana" : {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state" : "ʻaʻole hana",
"service" : "io.systemd.Home",
"nui diski" : 161218667776,
"DiskCeiling": 191371729408,
"diskFloor": 5242780,
"signedLocally" : oiaio
}
}

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka