linux如何退出用户

philoboy
  • 41

看如下问题:
创建用户test并删除,可成功

[root@192 run]# useradd test
[root@192 run]# userdel -r test

创建用户test,登录用户test,切换用户到root,删除test,失败

[root@192 run]# useradd test
[root@192 run]# su test
[test@192 run]$ userdel -r test
bash: /usr/sbin/userdel: Permission denied
[test@192 run]$ su
Password:
[root@192 run]# userdel -r test
userdel: user test is currently logged in

哪位大神知道这是因为什么?该如何解决?
多谢啦!
ps:多谢大家的回答,不过请大家切实自己做了实验,并且成功之后再慎重回答。

linux下如何删除已登录的普通用户

linux下如何杀死已登录的普通用户的进程

回复
阅读 15.7k
2 个回答

你不能在登录的一个用户的情况下,还想要删除这个用户的,要删,直接登 root,或者用其它用户 su 再删。

-------------

好吧,一条一条分析给你

# root 用户添加 test
[root@192 run]# useradd test
# 切换到 test
[root@192 run]# su test
# 自然不能删除自己
[test@192 run]$ userdel -r test
bash: /usr/sbin/userdel: Permission denied
# 这个时候你的 test 用户亦然登录,你再 su,于是这
# 个 root 等于是嵌套在你的 test 用户会话里的,再
# 这个会话要删除 test 肯定要失败,所以这里要 exit
# 然后再 userdel
[test@192 run]$ su
Password:
# 这里的删除自然会失败。。。
[root@192 run]# userdel -r test
# 你在 test 用户的会话里,当然是 “用户 test 当前登入中”,这里说的够明白了吧
userdel: user test is currently logged in

\*nix 已经 40 多岁了,如果这里真有 bug,你肯定不会是第一个碰到的。。。

--------

你不能删除自己登录的账户,但是你可以删除其它的登录账户,只要在 root 下踢出其它用户的登录,然后删除即可(我想你大概问得是这个问题)。

--------

再次强调,你不能在登入到 test 的同时要求删除 test,再怎么提权也不行。

不过,假如 test 当前登录,然后,你重新开个终端登入 root,或者用除 test 之外的用户提权到 root,可以先踢出 test,然后删除 test,至于怎么踢出 test,一般就是 pkill -9 -t <tty>,关键是找到 <tty>,可以 w 或者 ps -ef | grep '^test'

可能没看懂,登录到这个用户了当然不能删除 logout再删吧?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏