Portativ ev kataloqlarını idarə etmək üçün systemd-homed təqdim edildi

Lennart Poetrinq təqdim etdi (PDF) All Systems Go 2019 konfransında sistem meneceri sisteminin yeni komponenti - sistemli ev, istifadəçi ev qovluqlarını portativ və sistem parametrlərindən ayrı etmək məqsədi daşıyır. Layihənin əsas ideyası identifikatorun sinxronizasiyası və məxfilikdən narahat olmadan müxtəlif sistemlər arasında ötürülə bilən istifadəçi məlumatları üçün özünü təmin edən mühitlər yaratmaqdır.

Ev kataloqu mühiti məlumatların şifrələndiyi quraşdırılmış şəkil faylı şəklində gəlir. İstifadəçi etimadnamələri /etc/passwd və /etc/shadow əvəzinə sistem parametrləri deyil, ev kataloquna bağlıdır. profil JSON formatında, ~/.identity kataloqunda saxlanılır. Profildə istifadəçinin işi üçün lazım olan parametrlər, o cümlədən ad, parol hash, şifrələmə açarları, kvotalar və ayrılmış resurslar haqqında məlumatlar var. Profil xarici Yubikey tokenində saxlanılan rəqəmsal imza ilə təsdiqlənə bilər.

Parametrlərə həmçinin SSH açarları, biometrik autentifikasiya məlumatları, şəkil, e-poçt, ünvan, saat qurşağı, dil, proses və yaddaş məhdudiyyətləri, əlavə quraşdırma bayraqları (nodev, noexec, nosuid), istifadə olunan istifadəçi IMAP/SMTP serverləri haqqında məlumat kimi əlavə məlumatlar daxil ola bilər. , valideyn nəzarətinin aktivləşdirilməsi haqqında məlumat, ehtiyat seçimləri və s. Parametrləri tələb etmək və təhlil etmək üçün API təmin edilir Varlink.

UID/GID təyinatı və emalı ev kataloqunun qoşulduğu hər bir yerli sistemdə dinamik şəkildə həyata keçirilir. Təklif olunan sistemdən istifadə edərək, istifadəçi öz ev kataloqunu özü ilə, məsələn, Flash diskdə saxlaya bilər və açıq şəkildə hesab yaratmadan istənilən kompüterdə iş mühiti əldə edə bilər (ev kataloqunun təsviri olan faylın olması). istifadəçinin sintezinə gətirib çıxarır).

Məlumatların şifrələnməsi üçün LUKS2 alt sistemindən istifadə etmək təklif olunur, lakin systemd-homed həmçinin digər backendlərdən istifadə etməyə imkan verir, məsələn, şifrələnməmiş kataloqlar, Btrfs, Fscrypt və CIFS şəbəkə bölmələri üçün. Portativ kataloqları idarə etmək üçün homectl yardım proqramı təklif olunur ki, bu da ev kataloqlarının şəkillərini yaratmağa və aktivləşdirməyə, həmçinin onların ölçüsünü dəyişdirməyə və parol təyin etməyə imkan verir.

Sistem səviyyəsində iş aşağıdakı komponentlər tərəfindən təmin edilir:

  • systemd-homed.service - ev kataloqunu idarə edir və JSON qeydlərini birbaşa ev kataloqu şəkillərinə yerləşdirir;
  • pam_systemd - istifadəçi daxil olduqda JSON profilindən parametrləri emal edir və onları aktivləşdirilmiş sessiya kontekstində tətbiq edir (autentifikasiyanı həyata keçirir, mühit dəyişənlərini konfiqurasiya edir və s.);
  • systemd-logind.service - istifadəçi daxil olduqda, müxtəlif resurs idarəetmə parametrlərini tətbiq edərkən və limitlər təyin etdikdə JSON profilindən parametrləri emal edir;
  • nss-systemd - glibc üçün NSS modulu, JSON profili əsasında klassik NSS qeydlərini sintez edir, UNIX istifadəçi emal API (/etc/password) ilə geriyə uyğunluğu təmin edir;
  • PID 1 - istifadəçiləri dinamik şəkildə yaradır (birliklərdə DynamicUser direktivinin istifadəsi ilə analogiya ilə sintez olunur) və onları sistemin qalan hissəsi üçün görünən edir;
  • systemd-userdbd.service - UNIX/glibc NSS hesablarını JSON qeydlərinə çevirir və qeydlər üzərində sorğu və təkrarlama üçün vahid Varlink API təmin edir.

Təklif olunan sistemin üstünlükləri arasında /etc kataloqunu yalnız oxumaq üçün rejimdə quraşdırarkən istifadəçiləri idarə etmək imkanı, sistemlər arasında identifikatorların (UID/GID) sinxronizasiyasına ehtiyacın olmaması, istifadəçinin konkret kompüterdən müstəqilliyi, istifadəçi məlumatlarının bloklanması daxildir. yuxu rejimində, şifrələmə və müasir autentifikasiya üsullarından istifadə. Systemd-homed-in 244 və ya 245-ci buraxılışda sistem əsas axınına daxil edilməsi planlaşdırılır.

Nümunə JSON istifadəçi profili:

"autoLogin": doğru,
"məcburi": {
«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": "müntəzəm",
"enforcePasswordPolicy": yanlış,
"lastChangeUSec" : 1565951024279735,
"üzvü" : [
"təkər"
],
"imtiyazlı" : {
"hashedPassword" : [
«$6$WHBKvAFFT9jKPA4k$OPY4D5…/»
] },
"imza" : [
{
"data" : "LU/HeVrPZSzi3M3J...==",
"key" : "——İCTİMAİ AÇARI BAŞLAYIN——\nMCowBQADK2VwAy…=\n—— İCTİMAİ AÇARI SON——\n"
}
],
"userName" : "test",
"status": {
«15e19cf24e004b949dfaac60c74aa165» : {
"goodAuthenticationCounter": 16,
"lastGoodAuthenticationUSec" : 1566309343044322,
"rateLimitBeginUSec" : 1566309342341723,
"rateLimitCount" : 1,
"state": "qeyri-aktiv",
"service" : "io.systemd.Home",
"disk ölçüsü": 161218667776,
"diskTavan": 191371729408,
"diskFloor": 5242780,
"signedLocally": doğrudur
}
}

Mənbə: opennet.ru

Добавить комментарий