在Shell脚本中使用su

时间:2010-08-17 11:44:11

标签: unix

我正在编写一个shell脚本,在这种情况下脚本会像su - xxx一样更改用户,然后它必须执行一些命令/脚本,并且应该保持登录到该用户/会话以进行用户交互。一旦用户进入退出,它应退出该会话并返回脚本。

我尝试过使用su - xxx -c“命令”,但在执行命令后会终止会话。我希望在执行命令后继续执行该会话,用户应手动退出(键入exit)以关闭该会话并返回脚本。

任何提示都可以..

提前致谢....为你提出建议..

2 个答案:

答案 0 :(得分:0)

“应该保持登录该用户/会话以进行用户交互”是什么意思?您是否希望为用户提供常规shell提示,以便他们可以键入命令?

为此,您需要单独启动shell。尝试:

#!/bin/bash
echo Doing stuff...
echo Starting shell. Type "exit" when done.
sudo su - -c bash
echo Thanks for playing!

这将为用户启动子shell。如果子shell终止(通常在用户键入exit / Ctrl-D时),脚本将继续。

答案 1 :(得分:0)

最简单的方法可能是将bash作为命令列表中的最后一个命令启动。