Примусовий вихід користувача


60

I Коли я ввійшов у машину як rootі набрав, whoщоб побачити, хто з користувачів увійшов, я виявив ще когось, який увійшов як root

devuser   pts/0        2011-11-18 09:55 (xxx.xxx.xxx.xxx)
root      pts/1        2011-11-18 09:56 (xxx.xxx.xxx.xxx)
testuser  pts/2        2011-11-18 14:54 (xxx.xxx.xxx.xxx)
root      pts/3        2011-11-18 14:55 (xxx.xxx.xxx.xxx)

Як я можу змусити користувача root на pts / 3 вийти з системи?


9
Ви маєте вирішити ще більшу проблему. Вимкніть прямі кореневі реєстрації та змушуйте користувачів використовувати sudo.
Xenoactive

Відповіді:


55

Ви припиняєте сеанс, вбиваючи його батьківський процес, який називається керівником сесії. Дізнайтеся, з яким процесом це відбувається:

ps -dN|grep pts/3

10
А потім вбийте цей процес, використовуючиkill -9 <processid>
Мітхун Средхаран

5
Просто kill <pid>має бути достатньо, правда? Збережіть kill -9s для погано невідповідних процесів, які не відповідають INT, HUP або TERM; це схоже на різницю між вимкненням комп'ютера за допомогою системи меню ОС проти витягування штекера на комп'ютері.
TheDudeAbides

26

Щоб вбити та вийти з користувача, ви можете надіслати сигнал KILL. Введіть таку команду:

# skill -KILL -u vivek

Перегляньте ці посилання для отримання додаткової інформації:


6
що робити, якщо я ввійшов як той самий користувач?
Mithun Sreedharan

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

це мене sudo su -теж вигнало, хоч я і корінь, але я здогадуюсь, що я не був врешті-решт. повернення на сервер показало мене як єдиного. У мене було 4 екземпляри себе, я думаю, я б сказав.
pjammer

5
@Mithun Ви можете використовувати -t <terminal name>замість -u.
Мелебій

1
Зараз у посиланні на кіберцити написано: "ПОПЕРЕДЖЕННЯ! Ці інструменти застарілі, непіддані. Це є тут через історичні причини. Розгляньте замість цього використання команд killall, pkill та pgrep." pkill -KILL -u vivekпрацює так само добре.
EM0

0

Трохи вдосконалення відповіді Фабеля вище:

\# *for pid in $(for ptsn in $(w | grep **user_name** | grep pts | awk '{print $2}'); do ps -dN | grep "$ptsn " | awk '{print $1}' ; done); do kill -9 $pid; done*
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.