Меню Рубрики

Завершить сеанс пользователя linux

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) завершением замечено не было.

Зы. Смежный вопрос: Как кто отслеживает активность пользователя и в случае ее отсутствия (событий клавиатуры или мыши) прибивать процессы пользователя?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Завершить процесс в linux mint
  • Завершение работы ubuntu linux
  • Забыли пароль linux suse
  • Забыл пароль пользователя linux mint
  • Заблокировать учетную запись linux