Как безопасно выгнать других пользователей, вошедших в систему как root?

Я попробовал это:

pkill -KILL -u root

Оказывается, это было не то, что я хотел. Теперь я не могу войти по SSH.

Какой правильный путь?

Изменить - я добавил слово "безопасно" в вопрос. Я знаю, что вы не должны выгнать пользователей root, потому что они могут делать что-то важное. Но предположим, что пользователь является агентом по обслуживанию клиентов в крупной хостинговой компании, который взимает с вас около 5 долларов в минуту, если он подключен к вашей машине. Предположим, вы сказали им, что проблема решена, и они могут выйти из системы и перестать выставлять вам счета, но они делают вид, что не получают ваши электронные письма, потому что ваш начальник уже разрешил два часа работы, и они хотели бы выставить счет на 100%. Предположим, вы не обычный бездушный корпоративный раб и хотели бы сэкономить своему боссу немного денег. Так или иначе, я выгнал их. Я сделал это неправильно, но никакого вреда не было, я научился нескольким вещам и спас своему боссу не менее 100 долларов.

3 ответа

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

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

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

Не убивайте корневые пользовательские процессы, потому что вы хотите, чтобы они вышли из системы, это скорее всего закончится плохо.

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

Чтобы удалить пользователя, который вошел в систему как root, вы можете убить его терминальную сессию (tty/pty).
смотреть на ps -ef | grep -e 'pts\|tty'и узнайте терминал, где ваш пользователь вошел в систему.
Тогда используйте что-то вроде skill -KILL pts/0

[root@sgeorge-ld ~]# w | grep root
sgeorge  pts/7    :0.0             23:17    0.00s  0.11s  0.01s ssh root@localh
root     pts/10   sgeorge-ld.linke 23:21    2:22   0.09s  0.09s -bash
root     pts/11   sgeorge-ld.linke 23:21    0.00s  0.15s  0.00s w

[root@sgeorge-ld ~]# ps -ef | grep 'pts/11'
root     17313 17275  0 23:21 ?        00:00:00 sshd: root@pts/11
root     17317 17313  0 23:21 pts/11   00:00:00 -bash
root     17439 17317  1 23:24 pts/11   00:00:00 ps -ef
root     17440 17317  0 23:24 pts/11   00:00:00 grep pts/11

[root@sgeorge-ld ~]# ps -ef | grep 'pts/10'
root     17283 17275  0 23:21 ?        00:00:00 sshd: root@pts/10
root     17286 17283  0 23:21 pts/10   00:00:00 -bash
root     17443 17317  0 23:24 pts/11   00:00:00 grep pts/10

Таким образом, вы можете узнать номер пид. Просто убей этот номер pid, если ты действительно хочешь убить его.

С помощью tty Команда вы можете узнать имя вашего текущего терминала.

Другие вопросы по тегам