Odpowiedzi:
Będziesz musiał ręcznie znaleźć pliki, co prawdopodobnie było tym deluser, co by zrobiło.
Uwaga: --remove-all-filesto nie to samo co rm -r /home/user. Ten ostatni usuwa tylko katalog główny (który może obejmować pliki, które nie są własnością tego użytkownika, choć nie jest to zwykły), drugi usuwa wszystkie pliki należące do tego użytkownika z systemu. Przynajmniej jeśli strona ma być godna zaufania .
GNU findma -usertest, więc możesz find / -user xxxznaleźć wszystkie pliki należące do użytkownika xxx. xxxbędzie nazwą użytkownika i może (iw tym przypadku będzie musiała, ponieważ użytkownik już nie istnieje) być identyfikatorem numerycznym użytkownika. findma również -deleteopcję, więc
find / -user xxx -delete
Powinien to zrobić, chociaż nie przetestowałem polecenia ze wszystkimi opcjami jednocześnie.
EDYCJA: Identyfikator numeryczny: Powodem, dla którego powiedziałem, że musisz użyć identyfikatora numerycznego, jest to, że skoro już usunąłeś użytkownika, jego wpis /etc/passwdzostał usunięty (zawierał, wraz z innymi rzeczami, identyfikator użytkownika wraz z jego nazwą użytkownika) .
Tak więc, jeśli nie usunąłeś jego homediru, jednym z najprostszych sposobów jest po prostu zapytanie o identyfikator właściciela tego homediru:
stat -c %u /home/user/
( statjest narzędziem do odczytu danych systemu plików. -c %umówi, statjak zapisać dane wyjściowe, tutaj proszę o podanie identyfikatora użytkownika)
Jeśli lubisz jednowierszowe, możesz nawet połączyć oba polecenia:
find / -user $(stat -c %u /home/user/) -delete
(Oczywiście wolisz uruchomić go najpierw z opcją no, -deleteaby upewnić się, że nie ma nic, co chcesz zachować, i aby złapać każdy błąd, który popełniłeś podczas pisania reszty polecenia. Błędy podczas wykonywania operacji usuwania rekurencyjnego /nie są dla słabych z serca.)
rmużycia xargs(ale to prawdopodobnie przekroczy granice argumentów, jeśli wyników jest zbyt wiele), ale spójrz na -depth, cytując instrukcję informacyjną: „Jeśli polecenie` find 'usuwa katalogi, możesz to znaleźć pojawia się fałszywy komunikat o błędzie, gdy polecenie „find” próbuje wrócić do katalogu, który został teraz usunięty. Użycie opcji -depth zwykle rozwiąże ten problem. (a później w tej samej sekcji, „(„ -delete ”oznacza i tak„ -depth ”)”)
find: 'user' is not the name of a known use
/etc/passwdktóre zawiera listę użytkownika i jego identyfikatora. Musisz znaleźć identyfikator numeryczny. Czy stat -c %u /home/user/powinien dać numeryczny identyfikator użytkownika, użyj go jak xxxwyżej.
Inną opcją byłoby ponowne dodanie użytkownika adduser, określenie starego UID, a następnie deluserponowne uruchomienie , tym razem z --remove-all-filesflagą.
Załóżmy na przykład, że użytkownik miał nazwę użytkownika alicei identyfikator UID 1001:
sudo adduser --uid 1001 alice
sudo deluser --remove-all-files alice
gnu find ma opcje -nouser i -nogroup, sprawdź w man find. Dzięki tym opcjom możesz znaleźć wszystkie pliki w systemie plików, które nie mają odpowiedniego użytkownika w / etc / passwd. Jeśli nie utworzyłeś nowego użytkownika ze starymi identyfikatorami użytkowników usuniętych, istnieje możliwość znalezienia tych osieroconych plików.
Możesz jednak znaleźć więcej plików - nie tylko tych, które należały do usuniętego.
-execopcji find, aby uruchomić niestandardowe polecenie rm, jeśli chcesz nieco więcej kontrolować swoje usuwanie, ale nigdy tego nie próbowałem, więc YMMV.