Kickban пользователя из ssh

Иногда бывает такая необходимость (обычно в следствие обострения параноидального психоза гыгы) закрыть доступ для всех, или отдельного пользователя к серверу по ssh.
Сегодня приключилась такая нужда.

В винде эта операция делается просто: блокировка пользователя в панели управления, и отключение его сеанса через диспетчер задач, что логично, и интуитивно понятно.
В юниксах же… Вообще говоря тоже, все логично, но способов в интернетах понаписали много, и как обычно, в твоем случае, половина из них будет неприменима 😉

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

Чаще всего советуют три основных варианта:

  1. ps <с опциями>|grep <имя пользователя>
    затем kill -9 <номер процесса>
  2. [skill |pkill] -KILL -u <имя пользователя>
  3. slay <имя пользователя>

Все они, по сути, прибивают процессы пользователя, разница лишь в том, какие опции выбора группы убиваемых процессов поддерживаются.
Все они, не “банят” пользователя, а просто отключают. Т.е. переподключиться – не проблема.
Больше всего, мне понравилась команда slay, т.к. она простая и эффективная.

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

Второй вариант в мане описан так:


These tools are obsolete and unportable. The command syntax is poorly defined. Consider using the killall, pkill, and pgrep commands instead.

третий же всем хорош, но по умолчанию не стоит нигде. Т.е. если это на вашем сервере, и вы зараннее поставили эту утилиту – то это самый верный вариант. Если же ничего не ставили, но сделать надо, то нужно дорабатывать первый вариант, или ручками килять процессы (перед этим заблокировать пользователя любыми доступными средставами, что б не подключился снова).

Заблочить можно по разному.

От “выдернуть кабель из сетевухи”, до блокировки конкретного пользователя в системе и адреса в сети.

Самый быстрый и простой способ, как я считаю, создать файл /etc/nologin (читай ман!), наличие которого, не даст залогиниться никому кроме рута в систему (даже локально!!!! если у тебя убунта, и ты выйдешь из системы после создания этого файла, то прям печалька, ибо в убунте по умолчанию рут лаблокирован). И следом, когда супостата прогнали, можно сделать:


Чтобы заблокировать учётную запись, администратор должен использовать команду usermod --expiredate 1 (это установит дату устаревания учётной запись равной 2 января 1970 года).

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

Войти с помощью: