вторник, 6 апреля 2010 г.

Как завершить сеанс другого пользователя в системе Linux/BSD

Иногда бывает необходимо завершить сеанс какого-либо пользователя. Причины на то бывают разные и мы их рассматривать не будем.

Первым делом нужно узнать кто в данный момент находится в системе.

Говорим системе

who

и получаем примерно такой ответ

root tty1 2010-04-06 10:26
vasyapupkin :0 2010-04-06 09:49
vasyapupkin pts/0 2010-04-06 09:49 (:0)
root pts/3 2010-04-06 10:41 (192.168.1.10)


tty - это локальные консоли
pts - псевдотерминалы.
Для pts в скобках может указываться адрес с которого производится подключение.

Мы узнали кто в системе, теперь попробуем завершить удаленный сеанс, т.е. pts/3.

Находим pid процесса

ps -A|grep pts/3

и получаем что-то вроде этого

6354 pts/3 00:00:00 bash
6408 pts/3 00:00:00 mc

Можно прибить одну запущенную программу или оболочку со всеми дочерними процессами.
Раз задача была завершить сеанс пользователя, то убиваем оболочку.

kill -9 6354


Готово.