web-dev-qa-db-ja.com

ユーザーをログアウトしてアカウントを削除する

特定のユーザーが大量のメーラーを使用していて、IPアドレスをブラックリストに登録しているサーバー(CentOS 6、Plesk 11.5)で問題が発生しています。私は次を使用してこのユーザーを削除しようとしました:

/usr/sbin/userdel test

しかし、それはユーザーが現在ログインしているというメッセージを返します。だから私は試しました:

pkill -u test

また、次を使用してアカウントをロックしました:

passwd -l test

これにより、将来的に彼がシステムにログインするのを止めることができます。

まだユーザーがログインしていると言います。このユーザーをログアウトして、システムから削除できるようにするにはどうすればよいですか?

8
user1532468

最初にすべての「テスト」ユーザーのプロセスをgrepし、すべてのpidを-9で強制終了してから、ユーザーを削除します。

pgrep -u test
ps -fp $(pgrep -u test)
killall -KILL -u test
userdel -r test
8
msnfreaky
passwd -l <user>

ログインのすべての可能な手段を停止するわけではありません。たとえば、公開鍵でsshを使用してログインする場合、パスワードを必要としないため、ログインできます。

ユーザーのログインを再度停止するには、/etc/passwdファイルを編集してユーザーを削除するか、7番目の列を/sbin/nologinに変更します。

実行:

ps -u <user>

ユーザーがまだ使用しているプロセスを確認し、それらすべてを強制終了します。以下を使用する必要がある場合があります。

kill -s 9 <pid>

プロセスを強制的に停止します。

2
garethTheRed

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

2
amir jj

SIGKILLですべてのユーザーのプロセスを強制終了しようとしましたか?

pkill -KILL -u username
1
numeral
userdel -rf username 

エラーがポップアップしますが、これによりユーザーが完全に削除されます。 /etc/passwdで確認できます。

0
Sonu kumar