Linux разлогинить всех пользователей

🐧 Как убить сессии пользователей на Linux

Мануал

Иногда вам может потребоваться убить несколько пользовательских сессий в системе Linux.

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

Другой пример – вы наблюдаете много сеансов ssh в своей системе и хотите убить их всех.

Если да, то как это сделать?

Есть несколько способов добиться этого результата.

Я покажу вам несколько способов, а вы сможете выбрать тот, который соответствует вашим потребностям

Как посмотреть активные сессии ssh?

Вы можете увидеть активные сеансы ssh, запустив команду w на Linux.

# w 00:34:21 up 48 days, 23:38, 4 users, load average: 0.79, 0.58, 0.56 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT magesh pts/0 192.168.1.101 19:47 4:45m 0.04s 0.00s sh /opt/scripts/disk-usage.sh renush pts/1 192.168.1.102 20:35 3:54m 2:23 0.00s sh bash thanis pts/2 192.168.1.103 00:27 5.00s 0.08s 0.04s ssh root pts/4 192.168.1.104 00:34 1.00s 0.02s 0.01s w

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.

Читайте также:  Openvpn пропадает интернет при подключении linux

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

Сначала найдите номер tty сеанса пользователя из вывода команды w.

w 00:34:21 up 48 days, 23:38, 4 users, load average: 0.79, 0.58, 0.56 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT magesh pts/0 192.168.1.101 19:47 4:45m 0.04s 0.00s sh /opt/scripts/disk-usage.sh renush pts/1 192.168.1.102 20:35 3:54m 2:23 0.00s sh bash thanis pts/2 192.168.1.103 00:27 5.00s 0.08s 0.04s ssh root pts/4 192.168.1.104 00:34 1.00s 0.02s 0.01s w

Как только он у вас есть, найдите PID соответствующего сеанса tty с помощью команды PS.

ps -ft pts/4 UID PID PPID C STIME TTY TIME CMD root 155183 155092 0 00:34 pts/4 00:00:00 -bash root 163015 155183 0 00:35 pts/4 00:00:00 ps -ft pts/4

Наконец убейте идентификатор процесса сеанса.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (105)
  • Книги (27)
  • Мануал (2 306)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (820)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (114)
  • Статьи (352)
  • Философия (114)
  • Юмор (18)

Anything in here will be replaced on browsers that support the canvas element

OpenVPN Community Edition (CE) – это проект виртуальной частной сети (VPN) с открытым исходным кодом. Он создает защищенные соединения через Интернет с помощью собственного протокола безопасности, использующего протокол SSL/TLS. Этот поддерживаемый сообществом проект OSS (Open Source Software), использующий лицензию GPL, поддерживается многими разработчиками и соавторами OpenVPN Inc. и расширенным сообществом OpenVPN. CE является бесплатным для […]

Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]

В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]

Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]

Читайте также:  Linux открыть права roots

Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]

Источник

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

Favorite

Добавить в избранное

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

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

Е сли вы вошли в удаленную систему Linux через SSH, вам просто нужно использовать команду exit для выхода из SSH.

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

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

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

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

root@localhost:~# who -u andreyex pts/0 2021-04-06 16:19 00:01 27382 (217.043.088.107) alex pts/1 2021-04-06 16:20 . 27583 (217.043.088.107) root pts/2 2021-04-06 16:21 . 27654 (217.043.088.107)

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

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

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

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

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

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

echo "Your session will end in 2 minutes. Save your work!" | write alex pts/2

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

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

Читайте также:  Linux уменьшить размер разделов

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

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

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

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

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

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

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

Источник

Как разлогинить всех пользователей?

Появилась необходимость разлогинить всех пользователей.
Пока мысли, только чтобы добавить всем пользователям флаг, а при входе пользователя смотреть, стоит ли этот флаг и если да, то logout юзера, может есть какие нибудь более изящные способы?

marrk2

Каждая сессия — это файл на сервере, удаляем файлы все и юзеров заставят авторизоваться при следующем запросе страницы.

tigroid3

marrk2

есть метод getSavePath(), можно попробовать очистить папку через exec, либо unlik в цикле, это конечно если доступ будет.
еще есть gcSession, че то такое, сборщик мусора, можно погуглить про него.
а еще можно время жизни сессии поставить в 1 секунду и все попадают)

tigroid3

я думаю что поставить одну секунду не получится, ибо время устанавливается на момент создания идентификатора сессии. после работать не будет. вроде как.

Можно организовать флаги на базе MemCached:
Cоздав, например, флаг ‘action_logout:15’ со значением например » в момент запроса от клиента c пробовать получить по ключу значение из MemCached,
Если найдено, то проверить все необходимые условия и разлогинить только его, в примере, что «ip» клиента соответствует 10.0.0.1.
Как вариант, дополнительно можно проверять ‘action_logout:*’ для всех попадающих под условие.
Да массу чего можно придумать, на базе этого. Так же можно добавить текст причины окончания сессии, чтобы полностью не травмировать психику людей 🙂

Средствами Yii опять же возможно разлогинить, если перевести данные сессий в MemCached, благо это делается парой строк в конфиге, и по необходимости чистить содержимое MemCache.

Источник

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