Як видалити користувача?
З одного боку, дуже просто - видаліть його облікову картку з бази. Це можна зробити програмою 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 вона тільки видалить облікову картку з бази)