解決Linux 無法使用userdel 刪除用戶和組的問題
阿新 • • 發佈:2018-03-08
linux user del 刪除用戶報錯 vipw 解決Linux 無法使用userdel 刪除用戶和組的問題
- 系統環境
#cat /etc/redhat-release CentOS release 6.7 (Final) #getenforce Disabled
- 問題描述
我在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掉
- 問題原因
worker賬號上面運行著多個服務,有的進程可能是被root 在占用,我們可以通過ps -u worker|awk ‘{print $1}‘來查看該用戶下的Pid號。 - 解決方法
(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
- 命令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
解決Linux 無法使用userdel 刪除用戶和組的問題