
以前にGoogle検索を行ったところ、いくつかの方法がわかりましたが、Googleがその方法をすべて知っていないようです。だから何をしますかあなたLinuxシステムからユーザーを追い出しますか?また、最初に彼らがログインしているかどうかをどうやって知ることができますか?そして関連...ユーザーがX11 DEにログインしている場合、あなたのアプローチは機能しますか?
答え1
より簡単な方法があるかもしれませんが、私はそうします。
お使いのコンピュータに誰がログインしているかを確認してください。
who
または以下を使用してくださいw
。> who mmrozek tty1 Aug 17 10:03 mmrozek pts/3 Aug 17 10:09 (:pts/2:S.0)
TTY が接続されているシェルのプロセス ID を探します。
> ps t PID TTY STAT TIME COMMAND 30737 pts/3 Ss 0:00 zsh
すぐに接続が切断されたら笑ってください(このステップはオプションですが、お勧めします)。
> echo "HAHAHAHAHAHAHAHA" | write mmrozek pts/3
そのプロセスを終了します。
> kill -9 30737
who
フラグを指定してステップ1と2を組み合わせることができました-u
。 PIDは右側の数字です。
> who -u
mmrozek tty1 Aug 17 10:03 09:01 9250
mmrozek pts/18 Aug 17 10:09 01:46 19467 (:pts/2:S.0)
答え2
Michealがすでに指摘したように、これを使用してwho
誰がログインしているかを確認できます。ただし、複数のプロセスがある場合は、各プロセスを個別に終了するよりも便利な方法があります。つまり、killall -u username
そのユーザーのすべてのプロセスを終了できます。
答え3
ポイント!
私は受け入れられた答えのユーモアに感謝しますが、専門的にそれを擁護することはできません。
私が知っている最もエレガントな方法は、-HUPをシェルに送信してユーザーの停止をシミュレートすることです。これをユーザーのアイドル sshd に送信し、接続損失をシミュレートして、全体のシェル環境 (サブシェルを含む) クリーンアップをトリガーしたり、特定のネストされたシェル (たとえば、切断された端末マルチシェル) に送信したりできます。パスマルチプレクサの内部に設定)を使用すると、本当に正確にファイルシステムをアンマウントすることはできません。
write
始める前に端末のアイドルPTYにメッセージを送信するために使用されます。はいそれでも面白い趣味。
答え4
他の便利なコマンドはpkill
ここにありますpkill -u username && pkill -9 -u username
。
killall
欠点は、Solaris IIRCではまったく異なる意味を持つことです。pkill
もう少し高度なオプションもあります。