解决Linux 无法使用userdel 删除用户和组的问题

解决Linux 无法使用userdel 删除用户和组的问题

  1. 系统环境
    #cat /etc/redhat-release
    CentOS release 6.7 (Final)
    #getenforce
    Disabled
  2. 问题描述
    我在root账户下,删除普通账户worker时,出现如下报错信息:
    #userdel -r worker
    userdel: user worker is currently used by process 1973 
    我把1973这个进程kill了,再次使用userdel -r worker命令
    #userdel -r worker
    userdel: user worker is currently used by process 1986
    也就是没有真正的kill掉
  3. 问题原因
    worker账号上面运行着多个服务,有的进程可能是被root 在占用,我们可以通过ps -u worker|awk '{print $1}'来查看该用户下的Pid号。
  4. 解决方法
    (1)查看该用户的pid
    #ps -u worker|awk '{print $1}'
    26778
    26754
    26735
    26736
    (2)编写脚本
    说明:如果该用户下的pid很多,如我这次遇到了7千多个,一个一个kill是很耗费时间的,也很无聊。
    脚本形式如下:
    #ps -u worker|awk '{print $1}' > 1.txt
    #cat rm.sh
    #!/bin/bash
    for i in $(cat 1.txt)
    do kill -9 $i
    done
    echo "ok"
    执行脚本:
    #sh rm.sh
  5. 命令vipw
(1)#vipw –help
用法:vipw [选项]
选项:
-g, –group 编辑 group 数据库 
-h, –help 显示此帮助信息并推出 
-p, –passwd 编辑 passwd 数据库 
-q, –quiet 安静模式 
-R, –root CHROOT_DIR chroot 到的目录 
-s, –shadow 编辑 shadow 或 gshadow 数据库
(2)使用vipw原因
保证数据的一致性,不然可能会造成系统崩溃或者一些莫名其妙的问题。
(3)具体操作
#vipw
找到你用户worker,用dd删除那行(记得保存:wq or :x)。。之后。
#vipw -s
找到用户worker所属组,用dd删除即可(记得保存:wq or :x)
(4)检查worker是否还存在
#grep worker /etc/passwd

转载于:https://blog.51cto.com/wutengfei/2084028

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值