🐹 CentOS 7: Как закрыть сессии пользователей?

Содержание:

1. Введение.
2. Как посмотреть активные сессии ssh?
3. Закрываем сессии.

3.1. С помощью команды pkill.
3.2. С помощью команды kill.

4. Оригиналы источников информации.


1. Введение.

Иногда вам может потребоваться убить несколько пользовательских сессий в системе CentOS 7. Например, вам нужно запустить задание, для которого все пользователи должны выйти из системы. Другой пример – вы наблюдаете много сеансов ssh в своей системе и хотите убить их всех. Если да, то как это сделать? 

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

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

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

# w

Ответ:

3. Закрываем сессии.

3.1. С помощью команды pkill.

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

Вы можете увидеть номер сеанса tty из вывода команды w.

В моем случае я собираюсь закрыть сеанс пользователя «testuser».

Этот пользователь подключен к серверу с помощью pts/5, поэтому команда будет следующей:

# pkill -9 -t pts/2

Проверим закрылась ли сессия?

# w

Ответ:

Как видно пользователь usertest больше не имеет открытой сессии с сервером.

В чем разница между tty и pts?

  • TTY: tty означает Teletypewriter. Он напрямую связан с системой как клавиатура / мышь или последовательное соединение с устройством, например, консоль в вашей системе.
  • PTS: pts обозначает Pseudo Terminal Slave. Это терминальное устройство, которое эмулируется другой программой, например, сессией ssh в вашей системе.

3.2. С помощью команды kill.

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

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

# w

Ответ:

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

Синтаксис будет таким: ps -ft [tty].

Пробуем:

# ps -ft pts/1

Ответ:

Закрываем идентификатор процесса сеанса:

Синтаксис будет таким: kill -9 PID.

# kill -9 155183

Проверим закрылась ли сессия?

# w

Ответ:

Как видно пользователь usertest больше не имеет открытой сессии с сервером.

4. Оригиналы источников информации.

  1. itsecforu.ru «Как убить сессии пользователей на Linux».