您好,匿名用户
随意问技术百科期待您的加入

linux如何退出用户

0 投票

看如下问题:
创建用户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下如何杀死已登录的普通用户的进程

用户头像 提问 2013年 11月16日 @ Alistar 上等兵 (326 威望)
分享到:

1个回答

0 投票
 
最佳答案

你不能在登录的一个用户的情况下,还想要删除这个用户的,要删,直接登 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'

用户头像 回复 2013年 11月16日 @ Karma 上等兵 (229 威望)
选中 2013年 9月7日 @Alistar
提一个问题:

相关问题

0 投票
1 回复 35 阅读
用户头像 提问 2012年 12月1日 @ Nocturne 上等兵 (262 威望)
+2 投票
2 回复 89 阅读
0 投票
1 回复 54 阅读
用户头像 提问 2012年 12月1日 @ Cancer 上等兵 (211 威望)
+3 投票
1 回复 63 阅读
0 投票
1 回复 8 阅读
用户头像 提问 2014年 3月30日 @ Nidalee 上等兵 (346 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...