特定のユーザーが大量のメーラーを使用していて、IPアドレスをブラックリストに登録しているサーバー(CentOS 6、Plesk 11.5)で問題が発生しています。私は次を使用してこのユーザーを削除しようとしました:
/usr/sbin/userdel test
しかし、それはユーザーが現在ログインしているというメッセージを返します。だから私は試しました:
pkill -u test
また、次を使用してアカウントをロックしました:
passwd -l test
これにより、将来的に彼がシステムにログインするのを止めることができます。
まだユーザーがログインしていると言います。このユーザーをログアウトして、システムから削除できるようにするにはどうすればよいですか?
最初にすべての「テスト」ユーザーのプロセスをgrepし、すべてのpidを-9で強制終了してから、ユーザーを削除します。
pgrep -u test
ps -fp $(pgrep -u test)
killall -KILL -u test
userdel -r test
passwd -l <user>
ログインのすべての可能な手段を停止するわけではありません。たとえば、公開鍵でssh
を使用してログインする場合、パスワードを必要としないため、ログインできます。
ユーザーのログインを再度停止するには、/etc/passwd
ファイルを編集してユーザーを削除するか、7番目の列を/sbin/nologin
に変更します。
実行:
ps -u <user>
ユーザーがまだ使用しているプロセスを確認し、それらすべてを強制終了します。以下を使用する必要がある場合があります。
kill -s 9 <pid>
プロセスを強制的に停止します。
passwd -l <user>
はアカウントを無効にしません。ガレス氏は、ユーザーはSSHキーなどの別の認証トークンを使用して引き続きログインできると述べた。このアカウントを無効にするには、usermod --expiredate 1
を使用する必要があります。これにより、アカウントの有効期限が1970に設定されます。次に、ユーザーが開始したすべてのプロセスを強制終了します。ランニング:
$pgrep -u Foo
は、ユーザーFooが開始したすべてのプロセスを出力します。ランニング:
$kill -9 <pid>
は、そのプロセスを強制終了するSIGKILL
シグナルを送信します。今すぐ実行:
$pgrep -u Foo | xargs kill -9
これにより、ユーザーFooのすべてのプロセスIDが取得され、すべてが強制終了されます。
または:
$kill -9 -u Foo
SIGKILLですべてのユーザーのプロセスを強制終了しようとしましたか?
pkill -KILL -u username
userdel -rf username
エラーがポップアップしますが、これによりユーザーが完全に削除されます。 /etc/passwd
で確認できます。