Linux отключить сеанс пользователя

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

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

Главное меню » Операционная система Linux » Как заблокировать и разблокировать пользователя в Linux

3 способа блокировки и разблокировки учетных записей пользователей в Linux

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

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

Способ 1: блокировка и разблокировка пользователей с помощью команды passwd

Команда passwd в Linux работает с паролями учетной записи пользователя. Вы также можете использовать эту команду для блокировки учетной записи пользователя.

Команда в основном работает с файлом /etc/passwd. Вы можете вручную изменить этот файл, но мы не советуем этого делать.

Чтобы заблокировать пользователя с помощью команды passwd, вы можете использовать опцию -l или –lock следующим образом:

Проверьте статус пользователя с помощью команды passwd

Вы можете узнать, заблокирован или разблокирован пользователь, используя опцию -S или –status команды passwd.

passwd -S user_name

Посмотрите на второе поле в выводе. Вот что это значит:

– P или PS: пароль установлен (пользователь разблокирован)
– L или LK: пользователь заблокирован
– N или NP: пароль не требуется пользователю

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

standard P 10/14/2019 0 99999 7 -1

Чтобы разблокировать пользователя с помощью команды passwd, вы можете использовать опцию -u или –unlock:

В Ubuntu вы увидите такой вывод как для блокировки, так и для разблокировки пользователя:

А как насчет входа через SSH?

Существует серьезная проблема с блокировкой пользователей таким способом. Поскольку он работает только с файлом /etc/passwd, заблокированный пользователь все равно сможет войти через ключи SSH (если установлен вход через ключ SSH). Мы покажем вам, как с этим бороться в следующем разделе.

Способ 2: блокировка и разблокировка пользователей с помощью команды usermod

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

Чтобы заблокировать пользователя, вы можете использовать опцию -L следующим образом:

Чтобы разблокировать пользователя, вы можете использовать опцию -U:

Как проверить, заблокирован ли пользователь или нет? Команда usermod также работает с файлом /etc/passwd, поэтому вы можете использовать команду passwd -S user_name для проверки статуса пользователя.

Но usermod также работает с файлом /etc/passwd, так что заблокированный пользователь все еще может войти в систему через ключи SSH, верно? Верно. Но есть способы преодоления этой проблемы.

Читайте также:  Коробка с лицензией windows

Например, вы можете изменить оболочку пользователя на nologin, и это не позволит пользователю войти в оболочку.

Другой метод заключается в блокировке пользователя и предоставлении даты истечения в прошлом. Что он делает, так это то, что он отключает учетную запись в прошлую дату, а затем блокирует ее.

Убедитесь, что прошедшая дата находится между 1970-01-02 и текущей датой.

Вы можете отменить это с помощью этой команды:

Существует аналогичный способ блокировки пользователя в Linux с помощью команды chage. Давайте посмотрим на это в следующем разделе.

Способ 3: блокировка и разблокировка пользователей с помощью команды chage

Команда chage используется для изменения информации об истечении срока действия пароля пользователя. Его можно использовать для автоматической блокировки неактивного пользователя после определенного количества дней бездействия.

По сути, то, что вы сделали с помощью команды usermod в предыдущем разделе, может быть достигнуто с помощью команды chage:

По сути, вы установили дату истечения срока действия 1970-01-02. Вы можете увидеть детали, как это:

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

Как всегда, есть разные способы выполнить задачу в командной строке Linux. Мы показали здесь три способа блокировки и разблокировки пользователей в Linux. Вы знаете лучший способ или у вас есть рекомендации по блокировке пользователей? Поделитесь в разделе комментариев.

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

Источник

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

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

Читайте также:  Windows server ssh service

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

Источник

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

Для остановки всех сессий пользователя можно воспользоваться командной pkill. С ее помощью можно остановить все процессы пользователя, тем самым завершив его работу в системе.

Выполните в терминале команду:

Мы послали сигнал под номером 9 (SIGKILL) всем процессам пользователя username.

Освещаю, не отсвечивая))

Рубрики

Свежие записи

Иногда бывает необходимо завершить сеанс какого-либо пользователя. Причины на то бывают разные и мы их рассматривать не будем.

Первым делом нужно узнать кто в данный момент находится в системе.

Говорим системе
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

Можно прибить одну запущенную программу или оболочку со всеми дочерними процессами.
Раз задача была завершить сеанс пользователя, то убиваем оболочку.

Не могу завершить сеанс пользователя через терминал командой logout . Выводится сообщение :

bash: logout: не командный процессор login: используйте «exit»

Имя текущей среды рабочего стола [ echo $DESKTOP_SESSION ] : lightdm-xsession

Команда reboot , shutdown — работают.

Конечная строчка ответа команды cat /etc/lsb-release; arch; lightdm —version такова: lightdm 1.18.3

Мне завершение сеанса нужно было для того,чтобы попробовать избавиться от внезапного зависания системы. Изначально я перезагружал linux, ctrl+alt+F1 и потом в терминале вбивал reboot. Но теперь буду использовать sudo service lightdm restart .

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Mac os нет системных настроек

Это тот случай, когда ваш сеанс 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, добавив, соответственно, ещё один конвейер:

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 достаточно много, мы показали лишь некоторые из них.

Источник

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