Завершить сессию linux через консоль

Содержание
  1. Завершить сессию другого пользователя.
  2. Как выкинуть из системы пользователя по SSH в Linux
  3. Выкинуть пользователя из сеанса SSH
  4. Отправить сообщение перед завершением сеанса
  5. Принудительно завершить сеанс SSH, если SIGNHUP не работает
  6. Вы также можете выйти из выбранного сеанса пользователя, если у пользователя более одного сеанса SSH
  7. Как убить все процессы пользователя в Linux
  8. Как завершить все процессы пользователя?
  9. unixforum.org
  10. Консольная команда завершение сеанса пользователя
  11. Консольная команда завершение сеанса пользователя
  12. Re: Консольная команда завершение сеанса пользователя
  13. Re: Консольная команда завершение сеанса пользователя
  14. Re: Консольная команда завершение сеанса пользователя
  15. Re: Консольная команда завершение сеанса пользователя
  16. Re: Консольная команда завершение сеанса пользователя
  17. Re: Консольная команда завершение сеанса пользователя

Завершить сессию другого пользователя.

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 кроме (туту чписок исключений), что сложного?

Читайте также:  Где находится файл outlook windows 10

>Кстати, а как вы боретесь с кодировкой в xmessage — у меня русские буквы не отображаются. У Убунтологов есть notify-send конечно, но хотелось бы общих решений.

1) использовать KOI8-R+фонт соответствующий.

2) использовать gmessage, gxmessage.

Зачем -15, зачем -9? Просто килл ит виз файр. мягко и безболезненно. Остальные если что потом видишь, сделаешь контрольный с -KILL

ну или kdialog, ежели кеды. Русский понимают (в UTF)

Источник

Как выкинуть из системы пользователя по SSH в Linux

Главное меню » Linux » Как выкинуть из системы пользователя по SSH в Linux

Отлично. Но что, если вы хотите отключить какого-либо другого пользователя с помощью SSH-соединения?

В этой быстрой подсказке мы покажем вам, как вы можете выгнать любого пользователя из системы.

Выкинуть пользователя из сеанса SSH

Сначала проверьте список пользователей, вошедших в систему на вашем сервере Linux. Это можно сделать разными способами. Мы будем использовать команду who с опцией -u. Этот параметр отображает идентификатор процесса сеанса оболочки входа пользователей.

Вот пример вывода:

Теперь представьте, что мы хотим прекратить использование сеанса alex в SSH. Идентификатор процесса его сеанса оболочки – 27583. Если вы завершите сеанс оболочки входа в систему, пользователь будет отключен.

Для этого вы можете использовать команду kill для отправки сигнала SIGHUP. Этот сигнал используется для сообщения о том, что терминал пользователя отключен. Он также эффективно отключает все процессы в сеансе от управляющего терминала.

Конечно, чтобы выполнить такое действие, вы должны быть пользователем root или sudo.

Есть несколько вещей, которые вам следует знать и делать.

Отправить сообщение перед завершением сеанса

Это хорошая идея, чтобы проинформировать конечного пользователя, прежде чем вы завершите его/ее сеанс. Вы можете использовать команду записи, чтобы быстро отправить сообщение пользователю следующим образом:

Принудительно завершить сеанс SSH, если SIGNHUP не работает

Если сигнал SIGHUP не работает, отправьте сигнал SIGKILL.

Вы также можете выйти из выбранного сеанса пользователя, если у пользователя более одного сеанса SSH

Если один и тот же пользователь входит в систему из более чем одной системы или терминала, это влияет только на сеанс, который вы убиваете. Это не удалит пользователя из всех сеансов.

Читайте также:  Android не видит windows 10 по сети

Это тот случай, когда ваш сеанс SSH зависает по какой-то причине, например, при отключении сети. Вы можете убить терминал и открыть еще один сеанс SSH с нового терминала, но теперь вы видите, что дважды вошли в систему.

В таком случае вы можете закрыть сеанс, который больше не должен быть активным.

Вы можете определить, какого пользователя начать, по времени входа в журнал, который виден в выходных данных whoкоманды. Не волнуйтесь, в худшем случае вы откажетесь от текущего сеанса. Но тогда вы можете войти снова.

Надеемся, этот быстрый совет помог вам выйти из сеанса SSH в Linux. Ваши вопросы и предложения приветствуются.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как убить все процессы пользователя в Linux

Как мы знаем, Linux — многопользовательская ОС, поэтому с каждым пользователем могут быть связаны его собственные процессы. Такое разделение существует в целях безопасности. Запуская ту или иную программу от имени непривилегированного пользователя, ОС снижает риски несанкционированного проникновения и риски повреждения системных файлов.

В этой статье мы расскажем о том, как завершить все запущенные процессы конкретного пользователя.

Как завершить все процессы пользователя?

Для начала сформируем перечень всех процессов всех пользователей. В терминале Linux выполним следующую команду:

Как видно на скриншоте, имеются процессы, связанные с тремя пользователями (root, mint1 и mint). Допустим, нам срочно понадобилось завершить все процессы пользователя mint1.

Здесь следует немного подробнее остановиться на самом понятии процесса в Linux. Процесс – программа, запущенная в виртуальном адресном пространстве. Каждый процесс имеет свой уникальный номер или идентификатор — PID (Process Identificator). Работая с процессами, операционная система идентифицирует процессы именно по PID.

Для того, чтобы убить ненужные процессы, достаточно убить все PID процессов конкретного пользователя (в данном случае mint1). Для этого можно просто скопировать номера идентификаторов этого пользователя и ввести следующую команду:

sudo kill -9 3501 4333

Однако, количество PID может быть куда больше двух. Да и выполнить все действия вообще-то тоже можно с помощью одной команды, умещающейся в одну строку.

Например, используем конвейер и программу grep ( символ | обозначает передачу результатов выполнения первой команды второй команде по конвейеру):

ps au | grep -e ‘^mint1’

С помощью grep были выбраны все процессы пользователя mint1. Далее необходимо из второй колонки слева выбрать все PID. Сделаем это с помощью программы awk, добавив, соответственно, ещё один конвейер:

Читайте также:  Install graphic driver linux

ps au | grep -e ‘^mint1’ | awk ‘

Теперь нужно убить полученные значения PID. Опять добавим конвейер (в данном и последующих примерах все команды выполняются от имени суперпользователя root) и выполним группу команд:

ps au | grep -e ‘^mint1’ | awk ‘‘ | xargs kill -9

С помощью такой конвейеризованной группы команд мы завершили все процессы пользователя mint1.

Подобный конвейер можно было бы сформировать и так:

ps aux | awk ‘/^mint1/ ‘ | xargs kill -9

Кроме того, для того, чтобы убить все процессы пользователя в Linux, можно воспользоваться также следующими командами:

killall -u mint1

Однако и это ещё не всё. Нужно ещё проверить наличие процессов, связанных с пользователем mint1, и их состояние. Сделаем это с помощью команды:

Как видите, процессы, связанные с пользователем mint1, отсутствуют. Способов убить все процессы пользователя в Linux достаточно много, мы показали лишь некоторые из них.

Источник

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

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

Источник

Оцените статью