Bash:如何注销/退出运行脚本的用户

时间:2018-05-04 12:13:59

标签: linux bash session ssh terminal

我有一个创建多个目录等的bash脚本,使用用户的加密密钥创建一个反向的SSH隧道(它被解密,登录时由pam_ssh启动ssh-agent),然后启动tmux会话并分离(等待以后再重新安装)。此时一切都已完成,我想确保已经注销执行该脚本的用户。

原因如下:只允许某个用户(以后可能是root用户)执行此脚本,因此当我在终端regular_user时,我会执行:su special_user,{ {1}}现在,如果我忘记注销并让终端保持打开状态 - 有人可以再次运行该脚本,所以我希望在./special_script.sh结束时将./special_script.sh退出会话,返回他到special_user

备注:regular_user被接近special_user的支持人员用来帮助他们在他们的会话中帮助他们,所以很可能有一天支持人员会忘记退出而离开他的会话。理想情况下,使用regular_users之类的东西,但重要的是要求sudo special_user special_script.sh的密码短语(传递给ssh-agent)。

有可能吗?

1 个答案:

答案 0 :(得分:0)

当您无法使用sudo或将脚本嵌入到setuid位的常规可执行文件中时(请参阅https://unix.stackexchange.com/a/369/57293),您可以尝试操纵.bashrc special_user 1}}

special_script.sh
exit 0

请注意,所有解决方案都需要在涉及安全性时审核special_script.sh。当special_script.sh调用visqlplus之类的程序时,用户可以打开shell并在该shell中执行所有操作。