可能的重复:
shell脚本运行时切换到超级用户
我需要在脚本中切换用户并继续执行命令。我认为-c
可行,但我不知道如何正确使用它,也不知道如何做到这一点。我写
bash -c "su user && command arg1 arg2"
在我输入 exit 后它尝试执行该命令。我尝试设置 UID 并执行它,但该应用程序似乎知道我是什么用户(root),并且做了一些我无法作为我的目标用户访问的事情,所以看起来我确实需要弄清楚如何切换用户和继续执行bash代码。
答案1
您最好的选择是使用生成 ssh 密钥ssh-keygen
并将公钥添加到您想要成为的用户中,然后使用脚本中的私钥进行连接,因此您的脚本实际上将如下所示:
ssh -i ~/.ssh/userA_id_rsa userA@localhost command arg1 arg2
这需要 SSH 守护程序在系统上运行(大多数发行版默认安装,但可能没有运行)。