如何登录不同的用户ID并执行命令?

如何登录不同的用户ID并执行命令?

我正在从不同的用户 ID 执行以下 shell 脚本。但每次我执行这个脚本时,它都会顺利运行到“sudo su ${USER_ID}”。然后就停止执行了。请建议我如何通过脚本登录到不同用户后执行整个命令。

下面是脚本:

#!/bin/bash

PATCH_FILE=" "
USER_ID=" "
Grp_ID=" "

sudo mv ${PATCH_FILE} /tmp
sudo chown ${USER_ID}:${Grp_ID} /tmp/${PATCH_FILE}
sudo su ${USER_ID}
cd /tmp
unzip ${PATCH_FILE}

答案1

您的脚本不会停止执行,它会按照指示执行操作。它启动一个交互式 shell,并且该 shell 等待输入。它不会从脚本中读取输入,除非您告诉它这样做:

sudo su ${USER_ID} << EOF
cd /tmp
unzip ${PATCH_FILE}
EOF

请注意,这sudo su几乎总是不必要的。

请注意,上面的示例解决了一般问题,将行作为标准输入传递。这不一定是适合您情况的最佳解决方案。

相关内容