Systemd va schimba modul în care funcționează directorul dvs. de acasă Linux

Echipa din spatele systemd vrea să adoptați un nou mod de a gestiona directoarele de acasă. A numi-o „mod nou” înseamnă a-l pune ușor – aceasta este o adevărată schimbare de paradigmă pentru Linux. Iată tot ce trebuie să știți despre systemd-homed, care va ajunge probabil la o distribuție Linux din apropiere.

Niciun străin de controversă

Când systemd a fost introdus în 2010, comunitatea Linux s-a împărțit în trei tabere. Unii au considerat că este o îmbunătățire, iar alții au considerat că este un design defectuos care nu a respectat filozofia Unix. Și unora nu le păsa într-un fel sau altul.

Reacția adversarilor a fost puternică, aprinsă și, în unele cazuri, aproape fanatică. Lennart Poettering, inginer software la palarie rosie și co-dezvoltator Systemd, a primit chiar și amenințări cu moartea.

Cântece care susțin violența față de Poettering au fost postate pe YouTube și au apărut site-uri web care încearcă să constrângă utilizatorii Linux să boicoteze systemd. Co-dezvoltatorul său, Kay Sievers, a primit, de asemenea, critici și abuzuri, dar Poettering a suportat cu siguranță greul.

Cu toate acestea, în decurs de opt luni, Fedora folosea systemd. Până la sfârșitul anului 2013, Arc, Debian, Manjaro, și Ubuntu toți se mutaseră în systemd. Desigur, gloria open source este că, dacă nu vă place ceva, puteți să bifurcați codul sursă și să vă faceți propriul lucru cu el. Noi distribuții—cum ar fi Devuan, care a fost un furk al Debian – au fost create numai pentru a evita utilizarea systemd.

Directorul dvs. $HOME

În structura de directoare Linux, tot ceea ce faci se află în directorul „/home”. Fișierele dvs. de date, imaginile, muzica și întregul arbore de director personal sunt stocate în acest director numit după contul dvs. de utilizator.

Setările pentru aplicațiile dvs. sunt stocate în folderul dvs. de pornire în „directoare cu puncte” ascunse. Dacă primul caracter al unui nume de fișier sau director este un punct (.), acesta este ascuns. Deoarece aceste setări sunt stocate local și nu într-un registru central – și pentru că o copie de rezervă a directorului dvs. de acasă include aceste fișiere și foldere ascunse – toate setările dvs. sunt de asemenea făcute copii de rezervă.

  Cum să configurați un server uTorrent pe Linux

Când restaurați o copie de rezervă și porniți o aplicație, cum ar fi LibreOffice sau Thunderbird, aceasta caută directorul ascuns. De asemenea, găsește preferințele pentru documente, setările barei de instrumente și orice alte personalizări. Thunderbird găsește informațiile contului dvs. de e-mail și e-mailul. Nu trebuie să treci prin durerea de a configura încet fiecare aplicație.

Puteți folosi ls cu opțiunea -a (toate) pentru a vedea fișierele și directoarele ascunse. Mai întâi, tastați următoarele:

ls

Aceasta vă arată fișierele și directoarele obișnuite. Apoi, tastați următoarele:

ls -a

Acum, puteți vedea fișierele și directoarele ascunse.

Deoarece este cea mai prețioasă parte a unei instalări, este obișnuit ca directorul „/home” să fie montat în propria sa partiție sau pe un hard disk separat. În acest fel, dacă se întâmplă ceva catastrofal sistemului de operare sau partiției pe care se află, puteți fie să vă reinstalați distribuția Linux, fie să treceți la una nouă. Apoi, puteți doar să remontați partiția de acasă existentă pe „/home”.

Date despre tine

Directorul dvs. de acasă nu doar stochează datele dvs.; de asemenea, stochează informații despre tine. inclusiv unele atribute ale identității tale digitale. De exemplu, directorul dvs. „.ssh” stochează informații despre conexiunile de la distanță pe care le-ați făcut cu alte computere și orice chei SSH pe care le-ați generat.

Alte atribute ale sistemului, cum ar fi numele de utilizator al contului, parola și ID-ul unic de utilizator, sunt stocate în altă parte în fișiere precum „/etc/passwd” și „/etc/shadow”. Oricine poate citi unele dintre acestea, dar altele pot fi citite doar de persoane care au privilegii de root.

Iată cum arată conținutul fișierului „/etc/passwd”:

cat /etc/passwd

Schimbările systemd-homed

Intenția modificărilor systemd-homed este de a oferi un director home complet portabil, cu atât datele dvs., cât și identitatea digitală Linux stocate în el. UID-ul dvs. și toate celelalte mecanisme de identificare și autentificare vor fi stocate numai în directorul dvs. de domiciliu.

Datorită designului lor „toate ouăle într-un singur coș”, directoarele de acasă sunt criptate. Sunt decriptate automat ori de câte ori vă conectați și criptate din nou ori de câte ori vă deconectați. Metoda preferată este utilizarea Configurare cheie unificată Linux (LUKS) criptare disc. Cu toate acestea, există și alte scheme disponibile, cum ar fi fscrypt.

A Notarea obiectelor JavaScript Înregistrarea utilizatorului (JSON) stochează toate informațiile dvs. de identitate într-un director numit „~/.identity”. Este semnat criptografic cu o cheie care este în afara controlului tău.

  Cum să utilizați comanda chgrp pe Linux

Directorul principal al fiecărei persoane este montat pe un dispozitiv loopback, similar modului în care este montată o aplicație snap. Acest lucru este astfel încât arborele de directoare din directorul principal apare ca o parte fără întreruperi a arborelui de directoare al sistemului de operare. Punctul de montare este implicit „/home/$USER.homedir” (“$USER” este înlocuit cu numele contului persoanei).

Care sunt beneficiile?

Deoarece directorul dvs. de domiciliu devine o încapsulare sigură a tuturor datelor dvs., ați putea chiar să aveți directorul dvs. de domiciliu pe un dispozitiv amovibil. De exemplu, ați putea folosi o unitate USB pentru a o muta între mașina dvs. de la serviciu și cea de acasă sau orice alt computer cu sistem de domiciliu.

Aceasta este ceea ce Poettering a vrut să spună prin „un director de acasă complet portabil”. El a spus că chiar dacă nu doriți să vă mutați directorul de acasă pe un dispozitiv portabil, acest lucru va face upgrade-urile și migrațiile mai ușoare și va crește securitatea.

Îndepărtează ceea ce el numește „baze de date sidecar”, care conțin fragmente de informații importante despre tine despre care Poettering consideră că ar trebui centralizate. Fișierele „/etc/passwd” și „/etc/shadow” conțin informații de autentificare și parole codificate. Cu toate acestea, ele dețin și informații precum shell-ul dvs. implicit, the Supervizor general de operare General Electric câmp (GECOS).

Poettering a spus asta metadate ar trebui să fie raționalizate și stocate în grupuri semnificative în înregistrarea JSON a fiecărei persoane din directorul lor principal.

Gestionarea noului dvs. $HOME

Serviciul systemd-homed este controlat prin noul homectl instrument de linie de comandă.

Există opțiuni pentru a crea utilizatori și directoare de acasă și pentru a seta limite de stocare pentru fiecare utilizator. De asemenea, puteți seta parola, puteți bloca pe cineva din contul său sau puteți șterge complet un cont. Utilizatorii pot fi inspectați, iar înregistrările lor de utilizatori JSON pot fi, de asemenea, citite.

Fusurile orare și alte informații bazate pe locație pot fi, de asemenea, setate pentru fiecare utilizator. Puteți specifica shell-ul implicit și chiar să setați variabile de mediu astfel încât acestea să fie într-o anumită stare de fiecare dată când cineva se conectează.

Dacă te uiți în directorul „/home”, vezi intrări gestionate systemd-homed care arată ca următorul, cu „.homedir” adăugat la numele de utilizator:

/home/dave.homedir

Amintiți-vă, acesta este doar un punct de montare. Locația directorului principal criptat real este în altă parte.

  Cum se schimbă datele utilizatorului cu chfn și usermod pe Linux

Limitări și probleme

systemd-homed este utilizat numai pe conturile de utilizator ale oamenilor. Nu poate gestiona conturi de utilizator cu un UID mai mic de 1.000. Cu alte cuvinte, root, daemon, bin și așa mai departe, nu pot fi administrate folosind noua schemă. Va fi întotdeauna nevoie de modalități standard de administrare a utilizatorilor. Prin urmare, systemd-homed nu este o soluție globală.

Există un cunoscut prinde 22 care trebuie rezolvat. După cum am menționat anterior, directorul de acasă al unei persoane este decriptat ori de câte ori se conectează. Dar dacă cineva accesează computerul de la distanță prin SSH, cheile SSH din directorul de acasă nu pot fi referite, deoarece directorul de acasă este încă criptat până atunci. persoana se conectează. Desigur, este nevoie de cheile SSH pentru a se autentifica înainte ca el sau ea să se poată conecta.

Aceasta a fost o problemă recunoscută de echipa systemd-homed, dar nu am putut găsi nicio referință despre o remediere pentru aceasta. Suntem siguri că vor veni cu o soluție; ar fi un prafall spectaculos dacă nu o fac.

Să presupunem că cineva își transportă directorul principal pe o mașină nouă. Dacă UID-ul este deja folosit pe noua mașină de către altcineva, i se va atribui automat un nou UID. Desigur, toate fișierele sale vor trebui să aibă dreptul de a le reatribui noului UID.

În prezent, acest lucru este gestionat de o aplicație recursivă, automată a comanda chown -R. Acest lucru va fi probabil tratat diferit în viitor, atunci când va fi dezvoltată o schemă mai elegantă. Această abordare grea nu ia în considerare demonii și procesele care rulează ca alți utilizatori.

Când se întâmplă asta?

Acest lucru se întâmplă acum. Modificările codului au fost depus la 20 ianuarie 2020și au fost incluse în versiunea 245 a systemd, care a fost livrat cu Ubuntu 20.04 în aprilie 2020.

Pentru a verifica ce versiune aveți, introduceți următoarele:

systemd --version

Comanda homectl nu este încă prezentă, totuși. Ubuntu 20.04 folosește un director tradițional /home și nu folosește systemd-homed.

Desigur, este la latitudinea distribuțiilor individuale să decidă când vor include și vor suporta systemd-homed și homectl.

Deci, nu este nevoie ca nimeni să treacă în modul furci complet și torțe aprinse. Deoarece metodele standard de gestionare a utilizatorilor și a directoarelor de acasă vor rămâne, toți vom avea în continuare opțiuni.