Hai usato systemd-tmpfiles e ti sei trovato senza /home? Dovevi leggere la documentazione!

2 months ago 89

Tra i vari rimpiazzi di GRUB, i generatori di BSOD e sostituti di sudo di comandi systemd-qualcosa è ormai pieno Linux. Piaccia o meno, questo è lo standard che tutte le distribuzioni Linux hanno scelto di utilizzare e qui rimarrà, volenti o nolenti.

Certo nella seconda categoria, quella dei “nolenti”, rientra l’utente GitHub jedenastka, che ha aperto una issue nei confronti di Systemd dal titolo “refuse systemd-tmpfiles –purge invocation without config file specified on cmdline“.

L’utente, ingaggiando il comando sudo systemd-tmpfiles --purge che nominalmente dovrebbe pulire i file temporanei, si è ritrovato con strani messaggi a schermo riferiti alla sua home directory ed allarmato ha premuto Ctrl+C per stoppare tutto e trovarsi subito dopo con grosse porzioni della home directory cancellate.

Fortunatamente l’utente l’ha presa bene, aprendo la issue e specificando, verrebbe da dire legittimamente, come probabilmente uno specifico warning all’interno della spiegazione dei comandi che si ottiene invocando systemd-tmpfiles --help potrebbe in qualche modo evitare il verificarsi di simili situazioni.

Curiosa la risposta che uno degli sviluppatori di Systemd inserisce nel thread della issue (e che Phoronix racconta):

So an option that is literally documented as saying “all files and directories created by a tmpfiles.d/ entry will be deleted”, that you knew nothing about, sounded like a “good idea”? Did you even go and look what tmpfiles.d entries you had beforehand?

Maybe don’t just run random commands that you know nothing about, while ignoring what the documentation tells you? Just a thought eh

Quindi un’opzione che è letteralmente documentata come “tutti i file e le directory creati da una voce tmpfiles.d/ verranno eliminati”, di cui non sapevi nulla, sembrava una “buona idea”? Sei andato a vedere prima quali voci tmpfiles.d avevi?
Forse non dovresti semplicemente eseguire comandi a caso di cui non sai nulla, ignorando ciò che ti dice la documentazione? Solo un pensiero eh

Quindi, verrebbe da dire, cornuto e mazziato. Anche perché, a dispetto di quanto recita il solerte sviluppatore (e che ricorda l’atteggiamento di un suo collega Debian maintainer di cui abbiamo parlato recentemente a proposito di KeePassXC) la prima cosa che appare digitando --help per il comando è la specifica descrizione “Creates, deletes and cleans up volatile and temporary files and directories.” e quindi a tutto pare riferirsi, tranne che alla home directory.

Fortunatamente la questione è rientrata in fretta, con Lennart Poettering in persona a chiarire come:

I think we should fail –purge if no config file is specified on the command line. I see no world where an invocation without one would make sense, and it would have caught the problem here.

Penso che dovremo far fallire l’opzione –purge se non è stato specificata una configurazione a linea di comando. Non vedo dove un’invocazione senza l’opzione potrebbe avere senso, ed avrebbe intercettato il problema qui.

Portando alla patch che è stata inclusa in Systemd 256.1.

Tutto è bene quel che finisce bene? Forse. Di sicuro i file della home dell’utente che ha aperto la issue originale non la pensano così, ma in teoria questo genere di problemi non dovrebbe più ripetersi.

Chiosa finale sulla totale mancanza di empatia da parte dello sviluppatore che ha bollato come “pollo” l’autore della issue: quando i dati non sono i tuoi, e sei dietro uno schermo a digitare su una tastiera, è tutto molto più facile.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

Read Entire Article