Назад | Перейти на главную страницу

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

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

pkill -KILL -u root

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

Как правильно?

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

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

Лучше не позволять людям использовать 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. Просто убейте этот номер pid, если вы действительно хотите его убить.

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