Як видалити користувача в Linux (і видалити кожен слід)

Видалення користувача в Linux вимагає більше, ніж ви думаєте. Якщо ви системний адміністратор, вам потрібно видалити всі сліди облікового запису та доступу до нього зі своїх систем. Ми покажемо вам кроки, які потрібно зробити.

Якщо ви просто хочете видалити обліковий запис користувача зі своєї системи і не турбуєтесь про завершення запущених процесів та інших завдань очищення, виконайте кроки в розділі «Видалення облікового запису користувача» нижче. Вам знадобиться команда deluser в дистрибутивах на базі Debian і команда userdel в інших дистрибутивах Linux.

Облікові записи користувачів у Linux

З тих пір Перші системи розподілу часу з’явилися на початку 1960-х років і принесла з собою можливість для кількох користувачів працювати на одному комп’ютері, виникла потреба ізолювати та розділити файли та дані кожного користувача від усіх інших користувачів. І тому облікові записи користувачів—і паролі-народились.

Облікові записи користувачів мають адміністративні витрати. Їх потрібно створити, коли користувачу вперше потрібен доступ до комп’ютера. Їх потрібно видалити, коли цей доступ більше не потрібен. У Linux існує послідовність кроків, яких слід виконати, щоб правильно та методично видалити користувача, його файли та обліковий запис із комп’ютера.

Якщо ви системний адміністратор, ця відповідальність лежить на вас. Ось як це зробити.

Наш сценарій

Існує багато причин, за якими обліковий запис може знадобитися видалити. Співробітник може перейти в іншу команду або взагалі залишити компанію. Можливо, обліковий запис був налаштований для короткострокової співпраці з відвідувачем з іншої компанії. Об’єднання в команди поширене в наукових колах, де дослідницькі проекти можуть охоплювати відділи, різні університети і навіть комерційні організації. Після завершення проекту системний адміністратор повинен виконати ведення домашнього господарства та видалити непотрібні облікові записи.

Найгірший сценарій – це коли хтось йде під хмару через проступок. Такі події зазвичай відбуваються раптово, з невеликим попередженням. Це дає системному адміністратору дуже мало часу для планування, а також терміново заблокувати, закрити та видалити обліковий запис із створенням резервної копії файлів користувача на випадок, якщо вони знадобляться для будь-якої криміналістичної експертизи після закриття.

У нашому сценарії ми будемо робити вигляд, що користувач Ерік зробив щось, що вимагає його негайного видалення з приміщення. На даний момент він не знає про це, він все ще працює, і ввійшов у систему. Як тільки ви дасте кивок охороні, його виведуть з будівлі.

  Як грати в GreedFall на Linux

Все налаштовано. Усі погляди на тебе.

Перевірте логін

Давайте подивимося, чи дійсно він увійшов у систему, і, якщо є, то зі скількома сесіями він працює. Хто командує відобразить список активних сеансів.

who

Ерік увійшов один раз. Давайте подивимося, які процеси він запускає.

Огляд процесів користувача

Ми можемо використовувати команду ps для перелік процесів, які виконує цей користувач. Параметр -u (користувач) дозволяє нам вказати ps обмежити свій вихід процесами, що виконуються під володінням цього облікового запису користувача.

ps -u eric

Ми можемо побачити ті самі процеси з додатковою інформацією, використовуючи команду top. top також має параметр -U (користувач), щоб обмежити виведення процесами, що належать одному користувачеві. Зауважте, що цього разу це велика буква «U».

top -U eric

Ми можемо бачити використання пам’яті та процесора для кожного завдання та можемо швидко шукати будь-що з підозрілою активністю. Ми збираємося примусово знищити всі його процеси, тому найбезпечніше виділити момент, щоб швидко переглянути процеси, а також перевірити й переконатися, що інші користувачі не зазнають незручностей, коли ви закриєте процеси облікового запису Еріка.

Не схоже, що він робить багато, просто використовує менше для перегляду файлу. Ми можемо продовжити. Але перш ніж знищити його процеси, ми заморозимо обліковий запис, заблокувавши пароль.

Блокування облікового запису

Ми заблокуємо обліковий запис, перш ніж знищити процеси, тому що, коли ми закриємо процеси, користувач вийде з системи. Якщо ми вже змінили його пароль, він не зможе знову ввійти.

Зашифровані паролі користувачів зберігаються у файлі /etc/shadow. Зазвичай ви не турбуєтесь цими наступними кроками, але щоб ви могли побачити, що відбувається у файлі /etc/shadow, коли ви заблокуєте обліковий запис, ми трохи відступимо. Ми можемо використовувати наступну команду, щоб переглянути перші два поля запису для облікового запису користувача eric.

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

Команда awk аналізує поля з текстових файлів і за бажанням маніпулює ними. Ми використовуємо параметр -F (роздільник полів), щоб повідомити awk, що файл використовує двокрапку ” : ” для розділення полів. Ми будемо шукати рядок із візерунком «ерік». Для відповідних рядків ми надрукуємо перше та друге поля. Це ім’я облікового запису та зашифрований пароль.

  Як налаштувати ігрові периферійні пристрої Razer на Linux за допомогою Polychromatic

Запис для облікового запису користувача eric надруковано для нас.

Для блокування облікового запису ми використовуємо команду passwd. Ми будемо використовувати параметр -l (блокування) і введіть ім’я облікового запису користувача для блокування.

sudo passwd -l eric

Якщо ми знову перевіримо файл /etc/passwd, то побачимо, що сталося.

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

На початку зашифрованого пароля додано знак оклику. Він не перезаписує перший символ, він просто додається до початку пароля. Це все, що потрібно, щоб користувач не міг увійти до цього облікового запису.

Тепер, коли ми заборонили користувачеві знову ввійти в систему, ми можемо припинити його процеси та вийти.

Вбивство процесів

Існують різні способи знищення процесів користувача, але показана тут команда широко доступна і є більш сучасною реалізацією, ніж деякі з альтернатив. Команда pkill знайде та знищить процеси. Ми передаємо сигнал KILL і використовуємо параметр -u (користувач).

sudo pkill -KILL -u eric

Ви повертаєтеся до командного рядка в рішуче антикліматичній формі. Щоб переконатися, що щось сталося, давайте ще раз перевіримо, хто:

who

Його сесія пропала. Він вийшов із системи, а його процеси зупинено. Це зняло частину терміновості із ситуації. Тепер ми можемо трохи розслабитися й продовжити зачистку, поки охорона підійде до столу Еріка.

Архівування домашнього каталогу користувача

Не виключено, що в такому сценарії в майбутньому знадобиться доступ до файлів користувача. Або в рамках розслідування, або просто тому, що їх заміна, можливо, знадобиться повернутися до роботи їх попередника. Ми будемо використовувати команду tar щоб заархівувати весь їхній домашній каталог.

Варіанти, які ми використовуємо:

c: Створіть архівний файл.
f: Використовуйте вказане ім’я файлу для імені архіву.
j: Використовуйте стиснення bzip2.
v: Надайте докладний вихід під час створення архіву.

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

У вікні терміналу буде прокручуватися велика кількість виводу на екран. Щоб перевірити, чи створено архів, скористайтеся командою ls. Ми використовуємо параметри -l (довгий формат) і -h (доступний для читання).

ls -lh eric-20200802.tar.bz

Створено файл розміром 722 МБ. Це можна скопіювати в безпечне місце для подальшого перегляду.

Видалення завдань cron

Нам краще перевірити, чи є якісь завдання cron для облікового запису користувача eric. Завдання cron — це команда, яка запускається через певний час або проміжок часу. Ми можемо перевірити, чи є якісь завдання cron, заплановані для цього облікового запису користувача, за допомогою ls:

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

Якщо щось існує в цьому місці, це означає, що для цього облікового запису користувача в черзі є завдання cron. Ми можемо видалити їх за допомогою цієї команди crontab. Параметр -r (видалити) видалить завдання, а параметр -u (користувач) повідомляє crontab чиї роботи прибрати.

sudo crontab -r -u eric

Завдання безшумно видаляються. Наскільки ми знаємо, якби Ерік підозрював, що його збираються виселити, він міг би призначити зловмисну ​​роботу. Цей крок є найкращою практикою.

  Як встановити Emby Media Server на Linux

Видалення завдань друку

Можливо, у користувача були незавершені завдання друку? Щоб бути впевненим, ми можемо очистити чергу друку від будь-яких завдань, що належать обліковому запису користувача eric. Команда lprm видаляє завдання з черги друку. Параметр -U (ім’я користувача) дозволяє видаляти завдання, які належать вказаному обліковому запису користувача:

lprm -U eric

Завдання видаляються, і ви повертаєтеся до командного рядка.

Видалення облікового запису користувача

Ми вже створили резервні копії файлів з каталогу /home/eric/, тож ми можемо видалити обліковий запис користувача й одночасно видалити каталог /home/eric/.

Команда для використання залежить від того, який дистрибутив Linux ви використовуєте. Для Дистрибутиви Linux на базі Debian, команда deluser, і для решти світу Linux, це userdel.

Насправді в Ubuntu доступні обидві команди. Я наполовину очікував, що одне буде псевдонімом іншого, але це різні двійкові файли.

type deluser
type userdel

Хоча вони обидва доступні, рекомендується використовувати deluser на похідних від Debian дистрибутивах:

«userdel — це утиліта низького рівня для видалення користувачів. У Debian адміністратори зазвичай повинні замість цього використовувати deluser(8).

Це досить зрозуміло, тому команда для використання на цьому комп’ютері Ubuntu є помилковою. Оскільки ми також хочемо, щоб їхній домашній каталог був видалений, ми використовуємо прапор –remove-home:

sudo deluser --remove-home eric

Команда для використання для дистрибутивів, що не є Debian, є userdel з прапорцем –remove:

sudo userdel --remove eric

Усі сліди облікового запису користувача eric були стерті. Ми можемо перевірити, чи було видалено каталог /home/eric/:

ls /home

Групу eric також було видалено, оскільки обліковий запис користувача eric був єдиним записом у ній. Ми можемо перевірити це досить легко, передаючи вміст /etc/group через grep:

sudo less /etc/group | grep eric

Це обгортання

Еріка, за свої гріхи, немає. Охорона все ще виводить його з будівлі, а ви вже захистили та заархівували його файли, видалили його обліковий запис і очистили систему від будь-яких залишків.

Точність завжди переважає швидкість. Обміркуйте кожен крок, перш ніж його зробити. Ви не хочете, щоб хтось підійшов до вашого столу і сказав: «Ні, інший Ерік».