我们有一个 bash 命令,其中一个用户“useradm”运行命令为
sudo su - platfrmapi; sh script.sh
sudo su - platfrmapi; cp script.sh script_2.sh
用户切换完美地进行,但是作为“script.sh”的一部分创建的日志由“useradm”而不是“platfrmapi”拥有。
我们错过了什么吗?
答案1
您的命令用分号链接在一起,这意味着它们被执行独立地!首先,sudo
命令运行并切换到platfrmapi用户;该进程最终必须退出,这允许运行第二个命令,即sh script.sh
;第二个命令仍然以原始用户身份运行,因为该sudo su -
命令已退出。
您似乎想要以sh script.sh
platfrmapi 用户身份运行,因此请执行以下操作:
sudo -u platfrmapi sh script.sh
...假设 useradm 用户具有正确的 sudo 执行权限sh script.sh
。
确保脚本可执行(chmod +x script.sh
并且具有正确的 sh-bang 行)然后直接执行它会更直接:
sudo -u platfrmapi ./script.sh