Как удалить юзера?
С одной стороны, очень просто - удалите его учетную карточку из базы.
Это можно сделать программой vipw - найдите соответствующую строчку и
удалите ее.
С другой стороны, в системе могут быть файлы, принадлежащие этому юзеру,
а, также, имя юзера может встречаться в некоторых других файлах.
Что надо удалить?
Найти все эти файлы можно с помощью...
Где еще могут остаться упоминания об этом юзере?
Самый простой способ удалить юзера (программы rmuser и pw).
Что надо удалить?
Во-первых, домашнюю директорию юзера. Кстати, если администратор не
предпринимал никаких действий, чтобы дать юзеру возможность писать в другие
директории, то все файлы, которые мог "наплодить" юзер должны лежать в его
Home dir. Если же вы дали юзеру права создавать файлы в других диркториях
(в публичном ftp архиве или в директории www сервера, например), то, возможно,
надо "почистить" и там.
Во-вторых, "почтовый ящик" юзера в директории /var/mail. Сделайте это
обязательно, даже если юзер просил "пока не удалять почту" (или хотя бы
уберите этот файл из /var/mail). Дело в том, что название этого файла
совпадает с Name юзера, а права на чтение/запись определяются его user ID,
и, естественно, должны соответствовать друг-другу.
Не вдаваясь в подробности, могу сказать, что если вы вскоре зарегистрируете
нового пользователя с тем же user ID (он же освобождается), но с другим
именем, или наоборот - с таким же именем, как у старого юзера, но с другим
user ID, то у этого нового юзера возникнут серьезные проблемы с получением
почты.
В-третьих. Могут быть еще где-то раскиданы файлы, владельцем которых
был этот юзер. Например, в директории /tmp, /usr/tmp, /var/tmp.
Найти все эти файлы можно с помощью программы find. Например, так
find / -user vasia
(Обратите внимание, первый аргумент - директория, начиная с которой искать.
В данном примере это корневая, то есть будут просмотрены все файлы в системе.
С одной стороны это хорошо - ничего не пропустите, но, с другой стороны, если
у вас стоит ньюс-сервер или огоромный ftp-архив, то ждать придется долго).
С помощью этой же команды можно и удалить все найденные файлы
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).
Большую часть работы по удалению юзера (и всяческих упоминаний о нем)
выполняет программа
rmuser <имя юзера>
Во всяком случае, кроме удаления учетной карточки, она удаляет
- его домашнюю директорию;
- его "почтовый ящик" в /var/mail;
- упоминания о юзере в /etc/group;
- персональную crontab юзера;
- "пакетные" задания юзера в /var/at/jobs.
Как я уже сказал, в большинстве случаев этого вполне достаточно.
Те же действия выполняет "универсальная" утилита pw.
Для этого ее нужно запустить в виде
pw userdel <имя юзера> -r
(без ключа -r она только удалит учетную карточку из базы)
Иван Паскаль pascal@tsu.ru