Risposte:
Dovrai trovare manualmente i file, che probabilmente era quello che deluseravrebbe fatto.
Si prega di notare non--remove-all-files è lo stesso di . Quest'ultimo rimuove solo homedir (che può includere file non di proprietà di quell'utente, sebbene non usuali), il primo rimuove dal sistema tutti i file di proprietà di quell'utente. Almeno se la manpage deve essere attendibile .rm -r /home/user
GNU findha un -usertest, quindi puoi fare find / -user xxxper trovare tutti i file di proprietà dell'utente xxx. xxxsarebbe il nome utente e può (e in questo caso dovrà , poiché l'utente non esiste più) essere l'ID numerico dell'utente. findha anche -deleteun'opzione, quindi
find / -user xxx -delete
Dovrebbe farlo, anche se non ho testato il comando con tutte le opzioni contemporaneamente.
EDIT: ID numerico: il motivo per cui ho detto che devi usare un ID numerico è perché, come hai già eliminato l'utente, la sua voce è /etc/passwdstata eliminata (aveva, insieme ad altre cose, l'ID utente, insieme al suo nome utente) .
Quindi, se non hai rimosso il suo homedir, uno dei modi più semplici è semplicemente quello di richiedere l'ID del proprietario di quel homedir:
stat -c %u /home/user/
( statè uno strumento per leggere i dati del filesystem. -c %udice statcome scrivere il suo output, qui gli chiedo semplicemente di produrre l'ID utente)
Se ti piacciono i one-liner, puoi persino concatenare entrambi i comandi:
find / -user $(stat -c %u /home/user/) -delete
(Naturalmente potresti preferire eseguirlo per primo senza no -deleteper assicurarti che non ci sia nulla che desideri mantenere e per cogliere qualsiasi errore tu abbia fatto scrivendo il resto del comando. Gli errori quando si eseguono operazioni di eliminazione ricorsiva /non sono per i deboli del cuore.)
rmall'utilizzo xargs(ma questo probabilmente colpirà i limiti dell'argomento se ci sono troppi risultati), ma guarda -depth, citando il manuale informativo: "Se il tuo comando` find 'rimuove le directory, potresti scoprire che viene visualizzato un messaggio di errore spurio quando `find 'tenta di rientrare in una directory che è stata rimossa. L'uso dell'opzione` -depth' normalmente risolverà questo problema. " (e più avanti nella stessa sezione, "(` -delete 'implica comunque' -depth ') ")
find: 'user' is not the name of a known use
/etc/passwdche elenchi l'utente e il suo ID. Dovrai trovare l'id numerico. Fare stat -c %u /home/user/, dovrebbe darti l'id utente numerico, usalo come xxxsopra.
Un'altra opzione sarebbe quella di aggiungere nuovamente l'utente con adduser, specificando il vecchio UID, e quindi eseguirlo di delusernuovo, questa volta con il --remove-all-filesflag.
Supponiamo, ad esempio, che l'utente avesse nome utente alicee UID 1001:
sudo adduser --uid 1001 alice
sudo deluser --remove-all-files alice
gnu find ha le opzioni -nouser e -nogroup, cercalo in man find. Con queste opzioni puoi trovare tutti i file nel tuo filesystem che non hanno nessun utente corrispondente in / etc / passwd. Se non hai creato un nuovo utente con i vecchi uid dei tuoi utenti eliminati, questa è la possibilità di trovare questi file orfani.
Tuttavia, potresti trovare più file, non solo quelli che appartenevano a quello eliminato.
-execopzione di find per eseguire un comando rm personalizzato se vuoi un po 'più di controllo sulle tue eliminazioni, ma non l'ho mai provato così YMMV.