Cartella principale crittografata ancora accessibile dopo il logout


13

Se hai un account con una cartella home crittografata, non puoi accedere ai dati di testo normale dell'utente nella loro cartella home se l'utente non ha ancora effettuato l'accesso, dall'ultimo avvio del sistema. Questo è quello che mi aspettavo perché in realtà non dovrebbe essere praticamente possibile accedere alla cartella principale di un utente senza che sia stata immessa la password.

Tuttavia, ho scoperto che quando un utente con una cartella home crittografata accede e quindi si disconnette, i dati di testo normale nella loro cartella home sono ancora accessibili ad altri utenti. Sono richiesti privilegi di accesso sufficienti, ovviamente.

wnon elenca l'utente e l'output di sudo pgrep -u <username>è vuoto, indicando che l'utente non ha alcun processo in esecuzione.

Qual è la ragione di questo comportamento? Perché non bloccare semplicemente la cartella principale dell'utente dopo aver effettuato il logout?


Potresti includere l'output di grep -Fe ecryptfs /var/log/auth.logcirca il tempo in cui l'utente si è disconnesso?
David Foerster,

Il comando produce questo output: pastebin.com/jZXdahbJ Secondo Emacs, le uniche righe che contengono la stringa "ecryptfs" sono le righe prodotte quando ho eseguito quel comando.
UTF-8

Il risultato è come previsto solo le linee che Emacs mi ha già mostrato: pastebin.com/VtV7iCDg
UTF-8

Ok. Ne è valsa la pena dare un'occhiata.
David Foerster,

Ho notato questo errore anche nei sistemi live persistenti (nel tentativo di creare un secondo utente con home crittografata).
sudodus,

Risposte:


6

Bug noto

Se ho capito bene, questo è un bug noto.

Vedi questo link: wiki.archlinux.org/index.php/ECryptfs

Scorri verso il basso fino al paragrafo rosa

Avvertenza: Sfortunatamente lo smontaggio automatico è suscettibile di interruzione con systemd e i bug sono archiviati contro di esso ...

Work-around

Come è ora, è meglio spegnere o riavviare per rimuovere le tracce ( non è sufficiente disconnettersi).


Cosa intendi con "logout perderà le informazioni tra gli utenti"? Vuoi dire che succede qualcosa, a parte il fatto che un utente diverso con privilegi sufficienti può accedere ai dati di testo normale nella home directory del primo utente? (Questo è già possibile prima del logout, ovviamente.)
UTF-8

1
Cercare di spiegare meglio: "Non è sufficiente disconnettersi". (La disconnessione non rimuove le istanze in chiaro dei file, che sono state utilizzate dall'utente con home crittografata. Pertanto, le informazioni possono passare da questo utente a un altro utente, il quale accede, almeno se questo altro utente dispone dei privilegi di sudo. Ma se si spegne o si riavvia, le istanze in chiaro dei file scompaiono.
sudodus,

3

Non posso verificarlo o confermarlo, ma supponendo che tu stia utilizzando ecryptfs(che è ciò che Ubuntu offre durante l'installazione, IIRC), i dati crittografati vengono archiviati in una cartella nascosta /home/.encryptfs/$USERe montati nella posizione della cartella principale effettiva utilizzando il ecryptfsdriver quando accedi nel.

Molto probabilmente, quindi, ciò che sta accadendo è che quando si effettua il logout non riesce a smontare automaticamente quella directory, quindi i file sono ancora accessibili. Ciò potrebbe essere causato da ...

  • una configurazione errata (forse doveva essere configurato per smontare al logout ma non lo era)
  • tipo di logout imprevisto (a volte queste soluzioni funzionano per l'accesso / disconnessione DM, ma in caso contrario non funzionano bene)
  • se lo smontaggio è gestito da uno script di logout (non necessariamente il caso), qualcosa che precede il comando di smontaggio potrebbe non riuscire e causare la chiusura anticipata dello script.

Una cosa che può aiutarti a controllare questo sarebbe eseguire sudo mount | grep homeprima dell'accesso, dopo l'accesso e dopo il logout per vedere se homeè stato montato qualcosa che coinvolge . Puoi anche cercare /etc/fstabvoci pertinenti. Infine, c'è qualche configurazione /home/.ecryptfs/$USER/.ecryptfs/con le impostazioni pertinenti per il montaggio / smontaggio automatico.

Informazioni utili su ecryptfssono disponibili in questa risposta e nel sempre utile ArchWiki .


Ho provato quello che mi hai detto: pastebin.com/DrmEXQPV Non mi disconnetto in alcun modo strano ma nel modo GUI standard. L'FS è ancora montato, come puoi vedere. I file di configurazione che hai citato sono vuoti. Non c'è nulla nel mio /etc/fstabtranne 1 voce che dice che la mia unica partizione dati dovrebbe essere montata su /e 1 voce che riguarda una risorsa di rete relativa all'università. Dovrei provare a disconnettermi in un modo diverso? Se é cosi, come?
UTF-8

La disconnessione in un modo diverso il commento è stato un po 'un'ipotesi: i gestori desktop aggiungono molto oltre all'accesso e alla disconnessione che complica l'idea e rende difficile dire quali eventi vengono attivati. Mi chiedevo perché potrebbero esserci stati degli script o degli eventi che non venivano eseguiti. Sulla base delle altre risposte, non è quel tipo di problema, ma qualcosa a che fare con ecryptfsse stesso. In tale nota, tuttavia, utilizzi ssho accedi tramite i terminali di testo? Potrebbe essere possibile scrivere uno script che si occuperà di smontare al logout se troviamo dove inserirlo.
krs013,

3

Modifica /etc/systemd/logind.confe impostaKillUserProcesses=yes

Si noti che questo rompe sfondo programmi, screen, tmux, e simili ...

Questa domanda qui viene approfondita in modo più dettagliato. Trovo superfluo definire un nuovo servizio di systemd (o più precisamente, non il comportamento desiderato, poiché è invocato come hook di arresto, non al termine della sessione utente).

/unix/251902/ecryptfs-auto-umount-does-not-work


Controllerò se il tuo metodo funziona per un sistema live persistente con un secondo utente, che ha crittografato la home.
sudodus,

Spiacente, ma non sono riuscito a far funzionare questo metodo in un sistema live persistente con un secondo utente, che ha crittografato home. (Non ho testato la tua soluzione in un sistema installato, lo lascerò a @ UTF-8 che ha posto la domanda originale.)
sudodus

Non mi interessa risolvere questo problema sul mio computer. Sono l'unico che lo usa comunque, ma voglio usare 2 account con cartelle home crittografate e nessun altro conosce la password per entrambi gli account. Sono interessato al perché non smonta automaticamente i volumi crittografati per impostazione predefinita . Non potrebbe semplicemente verificare la presenza di processi in background attivi in ​​esecuzione nel contesto dell'utente e smontarlo se non ce ne sono?
UTF-8

@ UTF-8, sono d'accordo con te, che dovrebbe funzionare come tu vuoi che funzioni. Se ho capito bene, questo è un bug noto. Vedi questo link, wiki.archlinux.org/index.php/ECryptfs . Scorri verso il basso fino al paragrafo rosa "Avvertenza: purtroppo lo smontaggio automatico è suscettibile di interruzione con systemd e gli errori sono archiviati". - Come è ora, è meglio spegnere o riavviare per rimuovere le tracce (la disconnessione perderà le informazioni tra gli utenti.)
sudodus

@ UTF-8 è un bug nell'interazione systemd / session poiché almeno wheezy (sono perfettamente a mio agio semplicemente appeso su systemd) - la modifica /etc/systemd/logind.conf funziona per me il 16.04 (testato con tre diversi utenti , sessioni diverse, ecc ...)
quadruplebucky

3

Ho studiato questo problema per un po 'di tempo, vale a dire, il file system non crittografato rimane montato dopo il logout dell'utente.

Ho usato "ecryptfs-migrate-home -u user" per creare mount. ha seguito le indicazioni e tutto funziona tranne che per lo smontaggio automatico al logout.

Ho confrontato i file di configurazione nella /etc/pam.d/ con la documentazione di pam_ecryptfs e ho trovato alcune differenze. ecryptfs era in 4 dei file di configurazione pam.d mentre i documenti pam_ecryptfs indicano che solo 2 file necessitano / dovrebbero / supportano ecryptfs, ad es.

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

Quindi, ho commentato le altre 2 istanze, riavviato e tutto ha funzionato, si monta automaticamente al login e smonta automaticamente al logout sia per gli accessi grafici che per quelli della console. (Ho usato tty alternativi per verificare dall'account di root)

Questo è il 18.04 Lubuntu su laptop, desktop e guest virtualbox (host Windows).

Sono interessato all'esperienza altrui.

edit_1: testo migliorato. edit_2: aggiunti i risultati dei test desktop e VB.


Disabilitare / commentare una di quelle righe ha causato problemi? La modifica della password riavvolge ancora il file di chiavi eCryptfs?
Xen2050,

Questo ha funzionato per me su Linux Mint 19. Per aggiungere altri dettagli per gli altri: i quattro file di configurazione in /etc/pam.d che fanno riferimento a ecryptfs sono: common-auth, common-password, common-session, common-session- non interattiva. Commentare le righe in common-password e common-session-noninteractive ha portato al comportamento desiderato di smontaggio al logout. Inoltre, la voce in common-auth è stata impostata su "opzionale" anziché "richiesto" come si suppone sia conforme alla documentazione. Tuttavia, ho lasciato questo com'è.
evencoil

@ Xen2050, scusa per la risposta tardiva. Non ho rilevato alcun problema dopo le modifiche commentando le righe e non ho ancora provato a cambiare la password.
Redrock,

La modifica della password potrebbe essere importante da testare, dovrebbe ricoprire automaticamente la chiave di crittografia con la nuova password, quindi il login al prossimo funzionamento funziona. Se non funziona, quindi cambiando solo la parte posteriore della password al precedente dovrebbe funzionare ... [è sempre bene avere un backup anche se]
Xen2050

1
@ Xen2050, ho fatto il test per cambiare la password. ha funzionato.
Redrock

2

Lo faccio con uno script in rclocal

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0

Come si ottiene l'ID utente?
Avinash Raj,

0

Se non hai bisogno di accedere da cron o ai lavori (attività non interattive) a QUALSIASI directory home, devi solo commentare la riga

session  optional        pam_ecryptfs.so unwrap

in /etc/pam.d/common-session-noninteractive.

Ciò farà smontare tutte le home directory crittografate quando l'utente si disconnette.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.