从脚本注销当前用户

Wol*_*lfy 1 command-line bash scripts logout

我想创建一个脚本:

  1. 运行一些命令
  2. 执行 sudo su - [其他用户名]
  3. 从 [其他用户名] 退出后 -> 注销

示例:test.sh

echo "test script"
sudo su
logout
Run Code Online (Sandbox Code Playgroud)

如果我运行这样的脚本:

echo "test"
sudo su
whomai
Run Code Online (Sandbox Code Playgroud)

我得到了想要的结果:

[wolfy@ubuntusrv ~ ]# ./test.sh
test
[root@ubuntusrv wolfy]# date
Fri 19 Jun 10:56:52 CEST 2015
[root@ubuntusrv wolfy]# echo bla
bla
[root@ubuntusrv wolfy]# exit
wolfy
[wolfy@ubuntusrv ~ ]#
Run Code Online (Sandbox Code Playgroud)

如您所见,脚本运行我的echo命令,然后我sudo su到 root,在那里我可以做我需要做的事情,在我退出 root 会话后,脚本执行最后一个(whoami)命令。

我的问题是我无法在此脚本结束时注销自己。

我需要一种没有root权限的方法来做到这一点。

有人能帮我吗?

补充说明:

  1. 当我运行 sudo su - username (userA) 我需要提供我的密码 (wolfy) 以作为其他用户 (userA) 登录。然后我为该用户 (userA) 的整个会话工作,当我从该用户 (userA) 注销时,我想从我的 (wofly) 用户自动注销。
  2. 使用 sudo 命令不是一种选择

meu*_*euh 5

也许你想做的就是:

exec ./test.sh
Run Code Online (Sandbox Code Playgroud)

这将用脚本替换您当前的 shell 进程,因此当它完成时,没有任何东西可以运行。