Risposte:
Dovrai trovare manualmente i file, che probabilmente era quello che deluser
avrebbe 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 find
ha un -user
test, quindi puoi fare find / -user xxx
per trovare tutti i file di proprietà dell'utente xxx
. xxx
sarebbe il nome utente e può (e in questo caso dovrà , poiché l'utente non esiste più) essere l'ID numerico dell'utente. find
ha anche -delete
un'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/passwd
stata 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 %u
dice stat
come 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 -delete
per 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.)
rm
all'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/passwd
che 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 xxx
sopra.
Un'altra opzione sarebbe quella di aggiungere nuovamente l'utente con adduser
, specificando il vecchio UID, e quindi eseguirlo di deluser
nuovo, questa volta con il --remove-all-files
flag.
Supponiamo, ad esempio, che l'utente avesse nome utente alice
e 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.
-exec
opzione 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.