Як видалити користувача

Як видалити користувача?

З одного боку, дуже просто - видаліть його облікову картку з бази. Це можна зробити програмою vipw - знайдіть відповідний рядок і видаліть її.

З іншого боку, в системі можуть бути файли, що належать цьому користувачеві, а, також, ім'я користувача може зустрічатися в деяких інших файлах.

Що треба видалити?

По-перше, домашню директорію користувача. До речі, якщо адміністратор не робив ніяких дій, щоб дати користувачеві можливість писати в інші директорії, то всі файли, які міг "наплодити" юзер повинні лежати в його Home dir. Якщо ж ви дали користувачеві права створювати файли в інших діркторіях (в публічному ftp архіві або в директорії www сервера, наприклад), то, можливо, треба "почистити" і там.

По-друге, "поштовий ящик" юзера в директорії / var / mail. Зробіть це обов'язково, навіть якщо користувач просив "поки не видаляти пошту" (або хоча б приберіть цей файл з / var / mail). Справа в тому, що назва цього файлу збігається з Name користувача, а права на читання / запис визначаються його user ID. і, природно, повинні відповідати один одному.

Не вдаючись в подробиці, можу сказати, що якщо ви незабаром зареєструєте нового користувача з тим же user ID (він же звільняється), але з іншим ім'ям, або навпаки - з таким же ім'ям, як у старого юзера, але з іншим user ID. то у цього нового користувача виникнуть серйозні проблеми з отриманням пошти.

По-третє. Можуть бути ще десь розкидані файли, власником яких був цей користувач. Наприклад, в директорії / tmp, / usr / tmp, / var / tmp.

За допомогою цієї ж команди можна і видалити всі знайдені файли
find / -user vasia -delete
однак, оскільки вона не питає підтвердження, цей метод дуже небезпечний. Краще вже змусити її виконувати команду rm (з підтвердженням) для кожного знайденого файлу
find / -user vasia -exec rm -i <> \;

І, нарешті, привожу невеликий список (швидше за все, неповний) - де ще можуть залишитися згадки про це юзера.
  • в файлах / etc / group, /etc/login.access, / etc / ftpusers
  • в таблицях програми sendmail. / Etc / aliases і т.п. (Virtusertable. Genericstable і ін.)
  • якщо у вас окремим користувачам дозволяється запускати завдання за допомогою cron, то користувач може згадуватися в / etc / crontab або в / var / cron / allow. / Var / cron / deny. а, також, може бути його індивідуальна crontab в / var / cron / tabs /
  • якщо користувачам дозволяється користуватися "пакетним" виконанням програм, то користувач може згадуватися в /var/at/at.allow, /var/at/at.deny
  • якщо у вас ведеться "квотування" дискового простору, то повинна бути quote для цього користувача
  • якщо юзер користується IP зв'язком через модем, то він може згадуватися в файлах, що лежать в / etc / sliphome або / etc / ppp
  • від імені користувача можуть запускатися якісь демони (особливо це стосується псевдо-користувачів), тоді ім'я користувача може бути в /etc/inetd.conf або /etc/rc.local.

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

Однак, в більшості випадків все набагато простіше.

Найпростіший спосіб видалити користувача (програми rmuser і pw).

Більшу частину роботи з видалення користувача (і усіляких згадок про нього) виконує програма

У всякому разі, крім видалення облікової картки, вона видаляє
  • його домашню директорію;
  • його "поштову скриньку" в / var / mail;
  • згадки про юзера в / etc / group;
  • персональну crontab користувача;
  • "Пакетні" завдання користувача в / var / at / jobs.
Як я вже сказав, в більшості випадків цього цілком достатньо.

Ті ж дії виконує "універсальна" утиліта pw. Для цього її потрібно запустити в вигляді
pw userdel -r
(Без ключа -r вона тільки видалить облікову картку з бази)

Схожі статті