Первый способ
Этот способ (пожалуй, наиболее "цивилизованный") заключается в том, что в учетную карточку
надо вписать"Account expiration time" (с помощью программы chpass), естественно,
поставив там уже прошедшую дату. В этом случае, юзер как бы существует в
системе - письма к нему идут, файлы сохраняются, во всех диагностиках, где
может встретиться его имя, оно отображается правильно. Но, в то же время,
если юзер попытается войти в систему, ему просто выдастся сообщение,
что "ваш account истек".
Однако, это способ тоже не лишен недостатков.
Чтобы понять - почему, надо рассмотреть подробнее, что значит
"доступ в систему" юзера.
Обычный юзер может войти в систему (и пользоваться ее ресурсами) через
терминал или по сети, с помощью telnet. При этом должна проработать программа
login (которая проверит имя и пароль юзера и, если все правильно, запустит для
него Shell). Эта же программа обычно вызывается для тех, кто заходит через
модем и устанавливает IP соединение по модемной линии (PPP или SLIP).
(Кстати, login'у можно запретить пропускать юзера, если прописать правильную
строчку (запрещающую вход конкретному юзеру) в файле /etc/login.access.
Как это правильно сделать, можно посмотреть в man login.access).
Но, кроме того, юзер может (если, конечно, ваша система предоставляет такой
сервис):
занимается ftpd (программа-сервер FTP);
занимается программа popper;
проверкой имени/пароля занимается программа smbd;
и т.п.), тогда проверкой имени/пароля занимаются соответствующие демоны
(rlogind, rshd и т.д.);
Так вот. Проблема в том, что не все перечисленные демоны (программы-серверы),
ответственные за допуск юзера к ресурсам, могут обращать внимание на
"Account expiration time". И, следовательно, все равно дадут юзеру возможность
воспользоваться своими услугами.