linux上删除普通用户时如果报以下错误
[root@i-5608690E oracle]# userdel -r oracle
userdel: user oracle is currently logged in
可能有两个原因:
1. 该普通用户确实已经登录了
2. 有进程是通过该用户启动的,进程未关闭
解决办法:
执行W命令
[root@i-5608690E oracle]# w
08:02:12 up 24 days, 14:34, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 13Aug18 24days 0.00s 0.00s -bash
root pts/1 10.5.220.131 Thu19 0.00s 0.11s 0.00s w
w命令可以查看当前有哪些用户已经登录的服务器,如果没有你要删除的用户,说明是因为有使用你要删除的用户启动的进程尚未关闭,接着使用 ps命令查找要删除的用户启动的进程
[root@i-5608690E oracle]# ps -ef |grep oracle
oracle 12330 1 0 Sep06 ? 00:00:01 /opt/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
root 24011 16489 0 08:02 pts/1 00:00:00 grep oracle
我这里要删除的是oracle用户,可以看到,oracle用户启动一个进程,接着使用kill命令将进程杀掉即可
[root@i-5608690E oracle]# ps -ef |grep oracle
oracle 12330 1 0 Sep06 ? 00:00:01 /opt/oracle/product/11.2.0/db_1/bin/tnslsnr LISTENER -inherit
root 24011 16489 0 08:02 pts/1 00:00:00 grep oracle
[root@i-5608690E oracle]# kill -9 12330
然后再去删除oracle用户
[root@i-5608690E oracle]# userdel oracle
[root@i-5608690E oracle]#
删除没有再报错误,说明可以正常删除了!