Jak usunąć użytkownika w systemie Linux (i usunąć wszystkie ślady)

Usunięcie użytkownika w systemie Linux wymaga więcej niż myślisz. Jeśli jesteś administratorem systemu, będziesz chciał usunąć wszystkie ślady konta i jego dostęp ze swoich systemów. Pokażemy Ci, jakie kroki należy podjąć.

Jeśli chcesz tylko usunąć konto użytkownika ze swojego systemu i nie martwisz się o zakończenie jakichkolwiek uruchomionych procesów i innych zadań czyszczenia, wykonaj kroki opisane w sekcji „Usuwanie konta użytkownika” poniżej. Będziesz potrzebować polecenia deluser w dystrybucjach opartych na Debianie i polecenia userdel w innych dystrybucjach Linuksa.

Konta użytkowników w systemie Linux

Odkąd pierwsze systemy z podziałem czasu pojawiły się na początku lat 60 a wraz z nimi możliwość pracy wielu użytkowników na jednym komputerze, zaistniała potrzeba oddzielenia i podziału plików i danych każdego użytkownika od wszystkich innych użytkowników. A więc konta użytkowników…i hasła-urodził się.

Konta użytkowników wymagają nakładów administracyjnych. Muszą zostać utworzone, gdy użytkownik po raz pierwszy potrzebuje dostępu do komputera. Należy je usunąć, gdy ten dostęp nie jest już potrzebny. W systemie Linux istnieje sekwencja kroków, które należy wykonać, aby poprawnie i metodycznie usunąć użytkownika, jego pliki i konto z komputera.

Jeśli jesteś administratorem systemu, odpowiedzialność spada na Ciebie. Oto jak się do tego zabrać.

Nasz scenariusz

Konto może wymagać usunięcia z wielu powodów. Pracownik może przenosić się do innego zespołu lub całkowicie opuszczać firmę. Konto mogło zostać utworzone do krótkotrwałej współpracy z gościem z innej firmy. Zespoły są powszechne w środowisku akademickim, gdzie projekty badawcze mogą obejmować wydziały, różne uniwersytety, a nawet jednostki komercyjne. Na zakończenie projektu administrator systemu musi przeprowadzić porządek i usunąć niepotrzebne konta.

Najgorszy scenariusz to sytuacja, gdy ktoś wychodzi pod chmurę z powodu wykroczenia. Takie zdarzenia zwykle pojawiają się nagle, bez uprzedniego ostrzeżenia. Daje to administratorowi systemu bardzo mało czasu na planowanie i pilną potrzebę zablokowania, zamknięcia i usunięcia konta – z kopią zapasową plików użytkownika na wypadek, gdyby były potrzebne do jakichkolwiek badań kryminalistycznych po zamknięciu.

W naszym scenariuszu będziemy udawać, że użytkownik, Eric, zrobił coś, co gwarantuje jego natychmiastowe usunięcie z siedziby. W tej chwili nie jest tego świadomy, nadal pracuje i jest zalogowany. Jak tylko skiniesz głową ochronie, zostanie wyprowadzony z budynku.

Wszystko gotowe. Wszystkie oczy skierowane są na Ciebie.

Sprawdź login

Zobaczmy, czy naprawdę jest zalogowany, a jeśli tak, to z iloma sesjami pracuje. Kto dowodzi wyświetli listę aktywnych sesji.

who

kto w oknie terminala

Eric jest zalogowany raz. Zobaczmy, jakie procesy uruchamia.

Przegląd procesów użytkownika

Możemy użyć polecenia ps, aby lista procesów uruchomionych przez tego użytkownika. Opcja -u (użytkownik) pozwala nam nakazać psowi, aby ograniczył swoje dane wyjściowe do procesów działających w ramach tego konta użytkownika.

ps -u eric

ps -u eric w oknie terminala

Możemy zobaczyć te same procesy z większą ilością informacji za pomocą polecenia górnego. top ma również opcję -U (użytkownik), aby ograniczyć dane wyjściowe do procesów należących do jednego użytkownika. Zauważ, że tym razem jest to duża litera „U”.

top -U eric

top -U eric w oknie terminala

Możemy zobaczyć zużycie pamięci i procesora dla każdego zadania i możemy szybko wyszukać wszystko, co ma podejrzaną aktywność. Mamy zamiar siłą zabić wszystkie jego procesy, więc najbezpieczniej jest poświęcić chwilę na szybkie przejrzenie procesów i sprawdzić i upewnić się, że inni użytkownicy nie będą mieli problemów z zamknięciem procesów konta użytkownika eric.

Wyjście z top -U eric w oknie terminala

Nie wygląda na to, że robi dużo, po prostu używa mniej do przeglądania pliku. Możemy kontynuować. Ale zanim zabijemy jego procesy, zamrozimy konto, blokując hasło.

Blokowanie konta

Zablokujemy konto, zanim zabijemy procesy, ponieważ kiedy zabijemy procesy, wyloguje użytkownika. Jeśli już zmieniliśmy jego hasło, nie będzie mógł się ponownie zalogować.

Zaszyfrowane hasła użytkowników są przechowywane w pliku / etc / shadow. Normalnie nie zawracałbyś sobie głowy następnymi krokami, ale abyś mógł zobaczyć, co dzieje się w pliku / etc / shadow po zablokowaniu konta, zrobimy mały objazd. Możemy użyć następującego polecenia, aby spojrzeć na pierwsze dwa pola wpisu dla konta użytkownika eric.

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow w oknie terminala

Polecenie awk analizuje pola z plików tekstowych i opcjonalnie manipuluje nimi. Używamy opcji -F (separator pól), aby poinformować awk, że plik używa dwukropka „:” do oddzielenia pól. Będziemy szukać linii ze wzorem „eric”. Aby dopasować wiersze, wydrukujemy pierwsze i drugie pole. To jest nazwa konta i zaszyfrowane hasło.

Wpis do konta użytkownika eric jest drukowany za nas.

Aby zablokować konto, używamy polecenia passwd. Użyjemy opcji -l (lock) i przekazać nazwę konta użytkownika do zablokowania.

sudo passwd -l eric

sudo passwd -l eric w oknie terminala

Jeśli ponownie sprawdzimy plik / etc / passwd, zobaczymy, co się stało.

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow w oknie terminala

Na początku zaszyfrowanego hasła dodano wykrzyknik. Nie zastępuje pierwszego znaku, jest po prostu dodawany na początku hasła. To wszystko, co jest wymagane, aby uniemożliwić użytkownikowi zalogowanie się na to konto.

Teraz, gdy uniemożliwiliśmy użytkownikowi ponowne zalogowanie się, możemy zabić jego procesy i wylogować się.

Zabijanie procesów

Istnieją różne sposoby zabijania procesów użytkownika, ale pokazane tutaj polecenie jest szeroko dostępne i jest bardziej nowoczesną implementacją niż niektóre alternatywy. Polecenie pkill znajdzie i zabije procesy. Przekazujemy sygnał KILL i używamy opcji -u (użytkownik).

sudo pkill -KILL -u eric

sudo pkill -KILL -u eric w oknie terminala

Wracasz do wiersza poleceń w zdecydowanie antyklimaktyczny sposób. Aby upewnić się, że coś się stało, sprawdźmy ponownie, kto:

who

kto w oknie terminala

Jego sesja się skończyła. Został wylogowany, a jego procesy zostały zatrzymane. To trochę nagliło sytuację. Teraz możemy się trochę odprężyć i kontynuować sprzątanie, gdy ochrona podejdzie do biurka Erica.

Archiwizacja katalogu domowego użytkownika

Nie jest wykluczone, że w takim scenariuszu jak ten dostęp do plików użytkownika będzie wymagany w przyszłości. Albo w ramach dochodzenia, albo po prostu dlatego, że ich zastąpienie może wymagać odwołania się do pracy ich poprzednika. Użyjemy polecenia tar aby zarchiwizować cały swój katalog domowy.

Używane przez nas opcje to:

c: Utwórz plik archiwum.
f: użyj określonej nazwy pliku jako nazwy archiwum.
j: Użyj kompresji bzip2.
v: Dostarczaj szczegółowe dane wyjściowe podczas tworzenia archiwum.

sudo tar cfjv eric-20200820.tar.bz /home/eric

sudo tar cfjv eric-20200820.tar.bz / home / eric w oknie terminala

W oknie terminala przewinie się wiele danych wyjściowych ekranu. Aby sprawdzić, czy archiwum zostało utworzone, użyj polecenia ls. Używamy opcji -l (długi format) i -h (czytelny dla człowieka).

ls -lh eric-20200802.tar.bz

sudo tar cfjv eric-20200820.tar.bz / home / eric w oknie terminala

Utworzono plik o wielkości 722 MB. Można to skopiować w bezpieczne miejsce do późniejszego przejrzenia.

Usuwanie zadań cron

Lepiej sprawdźmy, czy na koncie użytkownika eric są zaplanowane jakieś zadania cron. Zadanie cron to polecenie uruchamiane w określonym czasie lub w określonych odstępach czasu. Możemy sprawdzić, czy są zaplanowane jakieś zadania crona dla tego konta użytkownika, używając ls:

sudo ls -lh /var/spool/cron/crontabs/eric

sudo ls -lh / var / spool / cron / crontabs / eric w oknie terminala

Jeśli cokolwiek istnieje w tej lokalizacji, oznacza to, że dla tego konta użytkownika w kolejce znajdują się zadania cron. Możemy je usunąć za pomocą tego polecenia crontab. Opcja -r (usuń) usunie zadania, a opcja -u (użytkownik) poinformuje crontab których zadania do usunięcia.

sudo crontab -r -u eric

sudo crontab -r -u eric w oknie terminala

Zadania są po cichu usuwane. Z tego, co wiemy, gdyby Eric podejrzewał, że ma zostać eksmitowany, mógł zaplanować złośliwą pracę. Ten krok jest najlepszą praktyką.

Usuwanie zadań drukowania

Być może użytkownik miał oczekujące zadania drukowania? Dla pewności możemy wyczyścić kolejkę drukowania wszelkich zadań należących do konta użytkownika eric. Polecenie lprm usuwa zadania z kolejki drukowania. Opcja -U (nazwa użytkownika) pozwala usunąć zadania należące do nazwanego konta użytkownika:

lprm -U eric

lprm -U eric w oknie terminala

Zadania są usuwane i wracasz do wiersza poleceń.

Usunięcie konta użytkownika

Utworzyliśmy już kopię zapasową plików z katalogu / home / eric /, więc możemy usunąć konto użytkownika i jednocześnie usunąć katalog / home / eric /.

Polecenie do użycia zależy od używanej dystrybucji Linuksa. Dla Dystrybucje Linuksa oparte na Debianie, polecenie to deluser i dla reszty świata Linuksa, to jest userdel.

W rzeczywistości w systemie Ubuntu dostępne są oba polecenia. Spodziewałem się, że jeden będzie aliasem drugiego, ale są to odrębne pliki binarne.

type deluser
type userdel

wpisz deluser w oknie terminala

Chociaż oba są dostępne, zaleca się użycie złudnika na dystrybucjach wywodzących się z Debiana:

„Userdel to narzędzie niskiego poziomu do usuwania użytkowników. W Debianie administratorzy powinni zwykle używać deluser (8). ”

To dość jasne, więc polecenie do użycia na tym komputerze Ubuntu to deluser. Ponieważ chcemy również usunąć ich katalog domowy, używamy flagi –remove-home:

sudo deluser --remove-home eric

sudo deluser --remove-home eric w oknie terminala

Poleceniem używanym w dystrybucjach innych niż Debian jest userdel, z flagą –remove:

sudo userdel --remove eric

Wszystkie ślady konta użytkownika eric zostały usunięte. Możemy sprawdzić, czy katalog / home / eric / został usunięty:

ls /home

ls / home w oknie terminala

Grupa eric została również usunięta, ponieważ konto użytkownika eric było jedynym wpisem w niej. Możemy to łatwo sprawdzić, przesyłając zawartość pliku / etc / group przez grep:

sudo less /etc/group | grep eric

mniej sudo / etc / group |  grep eric w oknie terminala

To jest opakowanie

Eric, za swoje grzechy, odszedł. Ochrona wciąż wyprowadza go z budynku, a Ty już zabezpieczyłeś i zarchiwizowałeś jego pliki, usunąłeś jego konto i wyczyściłeś system z wszelkich pozostałości.

Dokładność zawsze jest ważniejsza niż prędkość. Upewnij się, że rozważasz każdy krok, zanim go podejmiesz. Nie chcesz, żeby ktoś podszedł do twojego biurka i powiedział „Nie, ten drugi Eric”.