我在服务器(CentOS 6、Plesk 11.5)上遇到问题,其中特定用户正在使用群发邮件程序并将我们的 IP 地址列入黑名单。我尝试使用以下方法删除该用户:
/usr/sbin/userdel test
但它返回一条消息,表明用户当前已登录。我想好吧,终止该进程。所以我尝试:
pkill -u test
并使用以下方法锁定帐户:
passwd -l test
这有望阻止他将来登录系统。
仍然显示用户已登录。如何注销该用户以便将其从系统中删除?
答案1
首先 grep 所有“测试”用户的进程并杀死 -9 所有 pid,然后删除该用户。
pgrep -u test
ps -fp $(pgrep -u test)
killall -KILL -u test
userdel -r test
答案2
passwd -l <user>
不会阻止所有可能的登录方式。例如,如果他们使用ssh
公钥登录,他们仍然可以登录,因为他们不需要密码。
要停止用户再次登录,请编辑该/etc/passwd
文件并删除该用户或将第 7 列更改为/sbin/nologin
。
跑步:
ps -u <user>
查看用户仍在使用哪些进程并将其全部杀死。您可能需要使用:
kill -s 9 <pid>
强制进程停止。
答案3
passwd -l <user>
不会禁用该帐户。正如 gareth 所说,用户仍然可以使用其他身份验证令牌(例如 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
答案4
userdel -rf username
将会弹出错误,但这将永久删除该用户。你可以去查一下/etc/passwd
。