WebLampa
Освещаю, не отсвечивая))
Рубрики
Свежие записи
Как завершить сеанс другого пользователя в системе 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
Можно прибить одну запущенную программу или оболочку со всеми дочерними процессами.
Раз задача была завершить сеанс пользователя, то убиваем оболочку.
Information Security Squad
stay tune stay secure
🐧 Как убить сессии пользователей на Linux
Иногда вам может потребоваться убить несколько пользовательских сессий в системе Linux.
Например, вам нужно запустить задание, для которого все пользователи должны выйти из системы.
Другой пример — вы наблюдаете много сеансов ssh в своей системе и хотите убить их всех.
Если да, то как это сделать?
Есть несколько способов добиться этого результата.
Я покажу вам несколько способов, а вы сможете выбрать тот, который соответствует вашим потребностям
Как посмотреть активные сессии ssh?
Вы можете увидеть активные сеансы ssh, запустив команду w на Linux.
1) Как убить пользовательские сессии в Linux с помощью команды pkill
Вы можете напрямую убить сеанс ssh определенного пользователя, используя номер сеанса tty.
Вы можете увидеть номер сеанса tty из вывода команды w.
В моем случае я собираюсь убить сеанс пользователя «magi», этот пользователь подключен к серверу с помощью pts/5, поэтому команда будет следующей:
Хотите понять разницу между tty и pts?
В чем разница между tty и pts?
- TTY: tty означает Teletypewriter. Он напрямую связан с системой как клавиатура / мышь или последовательное соединение с устройством (например, консоль в вашей системе).
- PTS: pts обозначает pseudo terminal slave. Это терминальное устройство, которое эмулируется другой программой (например, сессией ssh в вашей системе).
2) Как убить пользовательские сессии в Linux с помощью команды Killall
Вы можете убить пользовательский сеанс следующим образом с помощью команды killall.
В моем случае я убиваю сеанс пользователя «magesh» с помощью ключа «-u».
3) Как убить пользовательские сессии в Linux с помощью команды Kill
Кроме того, вы можете убить пользовательский сеанс с помощью команды kill.
Этот метод потребует нескольких дополнительных шагов по сравнению с вышеупомянутыми двумя методами, потому что вы не сможете убить сессию напрямую.
Сначала найдите номер tty сеанса пользователя из вывода команды w.
Как только он у вас есть, найдите PID соответствующего сеанса tty с помощью команды PS.
Наконец убейте идентификатор процесса сеанса.
Завершить сессию другого пользователя.
killall -u user -15
killall -u user -9
Как-то слишком очевидно и жестоко.
Ведь завершает кто-то же сессию по нажатию кнопки «Завершить сеанс. » в Ubuntu например.
Кто? Как?
Хорошо — пусть только гномовскую. Но завершить-то как? То что делает это gnome-session вроде да — ясно. А как его потдтолкнуть к этой мысли не заходя в графический сеанс пользователя?
Дома я неоригинален:
А если попробовать
su -l имя_пользователя
>по wall посылаю предупреждение
А его видно пользователям X?
Не, в Иксах не видно. Для иксов xmessage, но для этого надо в иксах стать этим пользователем.
** (gnome-session-save:6701): WARNING **: Failed to call logout: The name org.gnome.SessionManager was not provided by any .service files
Тут вот какое дело — домочадцы не разлогиниваются после того как поюзают домашнюю машину. А когда у дочери открыт и стоит на паузе Totem, а у жены открыта Opera с десятком вкладок, пашет Beagle и Deluge, то в Nexuiz уже играть не очень комфортно.
Заходить и разлогинивать их руками лень. Какой бы скриптик написать, что бы запустил и остался в одиночестве, хотя бы на компьютере )))
Кстати, а как вы боретесь с кодировкой в xmessage — у меня русские буквы не отображаются. У Убунтологов есть notify-send конечно, но хотелось бы общих решений.
Мои юзеры english знают) Встречались скрипты на перле использующие libnotify. Можно рыть в эту сторону.
ну найти и убить все процессы с uid больше 1000 кроме (туту чписок исключений), что сложного?
>Кстати, а как вы боретесь с кодировкой в xmessage — у меня русские буквы не отображаются. У Убунтологов есть notify-send конечно, но хотелось бы общих решений.
1) использовать KOI8-R+фонт соответствующий.
2) использовать gmessage, gxmessage.
Зачем -15, зачем -9? Просто килл ит виз файр. мягко и безболезненно. Остальные если что потом видишь, сделаешь контрольный с -KILL
ну или kdialog, ежели кеды. Русский понимают (в UTF)
Завершить все процессы пользователя на Linux
Определить имена пользователей, с правами которых запущенны процессы. Завершить выполнение процессов, запущенных с правами некоторого пользователя.
2 ответа 2
Пример, завершаем (хе-хе) все процессы пользователя root :
Ergo, в этом случае копать в сторону man ps , man grep , man awk , man xargs .
Есть шикарные команды pgrep и pkill из пакета procps-ng
завершит все процессы пользователя USER
покажет все PID пользователя USER
Пример PinkTux можно сократить до:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками linux ubuntu bash или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2020.9.18.37632
unixforum.org
Форум для пользователей UNIX-подобных систем
Консольная команда завершение сеанса пользователя
Модератор: SLEDopit
Консольная команда завершение сеанса пользователя
Сообщение vlav » 13.03.2010 16:05
Re: Консольная команда завершение сеанса пользователя
Сообщение SLEDopit » 13.03.2010 16:57
(no confirmation, no shutdown/logout only, force now) — что значат цифры
Или, если нужно вырубить иксы вообще, то добавляем в sudo юзеру разрешения на k(g,x,etc)dm и
Re: Консольная команда завершение сеанса пользователя
Сообщение vlav » 14.03.2010 03:00
Re: Консольная команда завершение сеанса пользователя
Сообщение SLEDopit » 14.03.2010 03:41
Re: Консольная команда завершение сеанса пользователя
Сообщение zombie » 14.03.2010 10:27
Re: Консольная команда завершение сеанса пользователя
Сообщение vlav » 14.03.2010 11:06
/usr/bin/killall -9 -u user
реально все убивает, но корректно конечно не завершает
Re: Консольная команда завершение сеанса пользователя
Сообщение BIgAndy » 14.03.2010 12:53
Вместо SigKill импользутей SigTerm. Будет удивать корректнее.
Хотя за три года использования особых проблем с таким (sigkill) завершением замечено не было.
Зы. Смежный вопрос: Как кто отслеживает активность пользователя и в случае ее отсутствия (событий клавиатуры или мыши) прибивать процессы пользователя?











