L'intero concetto e l'implementazione di systemd hanno introdotto molte modifiche da quando ha iniziato a sostituire i vecchi strumenti di avvio e init di SystemV. Nel tempo, systemd è stato esteso a molti altri segmenti dell'ambiente Linux.
Un servizio relativamente nuovo, systemd-homed, estende la portata di systemd alla gestione delle home directory degli utenti. La funzione impone l'accesso solo per utenti umani e limita gli utenti del sistema nell'intervallo User ID (UID) compreso tra 0 e 999. Supporto il piano systemd per conquistare il mondo, ma mi chiedevo se fosse un po' eccessivo. Poi ho fatto delle ricerche.
Cos'è systemd-homed?
Il servizio systemd-homed supporta la portabilità dell'account utente indipendentemente dal sistema informatico sottostante. Un esempio pratico è portare in giro la tua home directory su una chiavetta USB e collegarla a qualsiasi sistema che la riconosca e la monti automaticamente. Secondo Lennart Poettering, principale sviluppatore di systemd, l'accesso alla home directory di un utente non dovrebbe essere consentito a nessuno a meno che l'utente non abbia effettuato l'accesso. Il servizio systemd-homed è progettato per migliorare la sicurezza, in particolare per i dispositivi mobili come i laptop. Sembra anche uno strumento che potrebbe essere utile con i contenitori.
Questo obiettivo può essere raggiunto solo se la home directory contiene tutti i metadati dell'utente. Il file ~/.identity memorizza le informazioni sull'account utente, che sono accessibili solo a systemd-homed quando viene immessa la password. Questo file contiene tutti i metadati dell'account, incluso tutto ciò che Linux deve sapere su di te, in modo che la home directory sia portabile su qualsiasi host Linux che utilizza systemd-homed. Questo approccio impedisce di avere un account con una password memorizzata su ogni sistema che potresti dover utilizzare.
La home directory può anche essere crittografata utilizzando la tua password. In systemd-homed, la tua home directory memorizza la tua password con tutti i tuoi metadati utente. La tua password crittografata non è memorizzata da nessun'altra parte, quindi non è accessibile a nessuno. Sebbene i metodi utilizzati per crittografare e archiviare le password per i moderni sistemi Linux siano considerati indistruttibili, la migliore protezione è innanzitutto impedirne l'accesso. Le supposizioni sull'invulnerabilità della loro sicurezza hanno portato molti alla rovina.
Questo servizio è destinato principalmente all'uso con dispositivi portatili come laptop. Poettering afferma:"Homed è inteso principalmente per le macchine client, ovvero i laptop e quindi le macchine a cui in genere ssh da molto più di ssh a, se segui quello che intendo". Non è destinato all'uso su server o workstation collegati a un'unica posizione tramite cavi o chiusi in una sala server.
Il servizio systemd-homed è abilitato per impostazione predefinita sulle nuove installazioni, almeno per Fedora, che è la distribuzione che uso. Questa configurazione è di progettazione e non mi aspetto che cambi. Gli account utente non sono interessati o alterati in alcun modo su sistemi con filesystem esistenti, aggiornamenti o reinstallazioni che mantengono le partizioni esistenti e i volumi logici.
Creazione di utenti controllati
Strumenti tradizionali come useradd
creare account e home directory che systemd-homed non gestisce. Pertanto, se si continua a utilizzare gli strumenti di gestione utenti convenzionali, le home directory nelle home directory non vengono gestite da systemd-homed. Questo vale anche per l'account utente non root creato durante una nuova installazione.
Il comando homectl
Il homectl
comando crea account utente gestiti da systemd-homed. Usando il homectl
il comando per creare un nuovo account genera i metadati necessari per rendere portabile la home directory.
Il homectl
La pagina man del comando ha una buona spiegazione degli obiettivi e della funzione del servizio systemd-homed. Tuttavia, leggendo il homectl
la pagina man è piuttosto interessante, specialmente la sezione Esempio. Dei cinque esempi, tre mostrano come creare account utente con limiti specifici imposti, come un numero massimo di processi simultanei o una quantità massima di spazio su disco.
In una configurazione non homectl, il /etc/security/limits.conf
file impone questi limiti. L'unico vantaggio che posso vedere in questo è che aggiunge un utente e applica i limiti con un singolo comando. Con il metodo tradizionale, l'amministratore di sistema deve configurare il limits.conf
file manualmente.
Limiti
L'unica limitazione significativa di cui sono a conoscenza è che non è possibile accedere in remoto a una directory home utente utilizzando OpenSSH. Questa limitazione è dovuta all'attuale impossibilità di PAM di fornire l'accesso a una home directory gestita da homectl
. Poettering sembra dubbio che questo possa essere superato. Questo problema mi impedirebbe di utilizzare systemd-homed per la mia home directory sulla mia workstation principale o persino sul mio laptop. In genere accedo a entrambi i computer in remoto diverse volte al giorno utilizzando SSH, quindi per me questo è uno spettacolo.
L'altra preoccupazione che posso vedere è che hai ancora bisogno di un computer Linux da utilizzare con una chiavetta USB con la tua home directory su di essa e quel computer deve avere systemd-homed in esecuzione.
È facoltativo
Non è necessario utilizzarlo, tuttavia. Ho intenzione di continuare a utilizzare gli strumenti tradizionali per la gestione degli utenti per supportare il mio flusso di lavoro. L'impostazione predefinita per le poche distribuzioni di cui ho una piccola conoscenza, inclusa Fedora, è che il servizio systemd-homed sia abilitato e funzionante. Puoi disabilitare e interrompere il servizio systemd-homed senza influire sugli account utente tradizionali.
Pensieri finali
Gli amministratori di sistema possono utilizzare il servizio systemd-homed per una forma sicura di gestione delle home directory degli utenti in roaming. È utile su dispositivi portatili come i laptop e può essere particolarmente utile per gli utenti che portano una chiavetta USB contenente solo le loro home directory per collegarla a qualsiasi comodo computer Linux.
La limitazione principale dell'utilizzo di systemd-homed è che è impossibile accedere in remoto utilizzando SSH. E anche se systemd-homed è abilitato per impostazione predefinita, non influisce sulle home directory create con useradd
comando. Devo sottolineare che, come molti strumenti di systemd, systemd-homed è opzionale. Quindi ho appena interrotto e disabilitato il servizio.
Se ho bisogno di portare la mia home directory in un pacchetto più piccolo del mio laptop, posso semplicemente usare una USB live con memoria persistente.
Risorse
- https://systemd.io/HOME_DIRECTORY/
- https://www.freedesktop.org/software/systemd/man/homectl.html
- https://www.freedesktop.org/software/systemd/man/systemd-homed.service.html
- https://wiki.archlinux.org/title/Systemd-homed