Comment forcer d'autres utilisateurs à se déconnecter?


14

Existe-t-il un moyen simple de forcer un autre utilisateur à quitter une boîte Linux, alors que je suis connecté en tant que root? Je comprends que je pourrais déterminer quel type de session ils ont ouvert et tuer le pid - mais je pense qu'il doit y avoir une commande pour faire cela que je ne connais pas.

Des idées?

Réponses:


15

Vous pouvez simplement slay(1)lui. :-)


Ha! Soigné. Je n'avais jamais entendu parler de cette commande auparavant. Est-il disponible sur tous les systèmes? Bien sûr, il semble que cela bat le processus de shell.
Jonathon Watney

Il est probablement emballé pour toutes les distributions, mais si vous avez besoin de quelque chose qui fonctionne partout, les compétences de procps --- comme le souligne Mihai --- pourraient être un meilleur choix. Il a cependant moins de style ;-)
David Schmitt

1
openSuse 11.4 - slay: commande introuvable :( :(
usr-local-ΕΨΗΕΛΩΝ

Non installé sur les hôtes Ubuntu 12.04 ou RHEL 3 que j'ai actuellement disponibles, j'ai la skillcommande détaillée par Mihai Limbăşan. YMMV
David


10

Vous pouvez tuer tous les processus d'un utilisateur via skill. Exemple:

  • skill -TERM -u username

enverra SIGTERM à tous usernameles processus de. Pour les tuer définitivement (via SIGKILL), utilisez -KILL au lieu de -TERM - veuillez noter, cependant, que vous leur ferez très probablement perdre des données de cette façon. C'est très efficace, attention ...

skillfait partie du procpspackage qui est installé par défaut par toutes les distributions.


Pour d'autres qui souhaitent le faire pour toutes les sessions utilisateur distantes, l'indicateur -v ( -v pts/*), qui se trouve dans la page de manuel, peut être utile.
David

2

Le pkillet killallsont préférés skill. C'est à partir de la skillpage de manuel:

Ces outils sont probablement obsolètes et non transférables. La syntaxe de commande est mal définie. Pensez à utiliser les killall, pkillet les pgrepcommandes à la place.

Cela devrait faire l'affaire:

sudo pkill -KILL -u [user]

ou

sudo killall -u [user]


0

Une autre façon simple de le faire est d'exécuter kill -1 <pid>pid est le numéro d'identification du processus de la session SSH.

En exécutant cette commande, vous pouvez voir toutes les arborescences de processus sshd , en supprimant l'ID de processus parent, vous tuerez efficacement la session utilisateur qui lui est associée:

$ ptree -p

Recherchez sshd puis exécutez:

$ kill -1 39383

39383 est un exemple de numéro d'identification de processus arbitraire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.