“ sudo su - ”正在切换用户,但正在使用父 ID 创建文件

“ sudo su - ”正在切换用户,但正在使用父 ID 创建文件

我们有一个 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.shplatfrmapi 用户身份运行,因此请执行以下操作:

sudo -u platfrmapi sh script.sh

...假设 useradm 用户具有正确的 sudo 执行权限sh script.sh

确保脚本可执行(chmod +x script.sh并且具有正确的 sh-bang 行)然后直接执行它会更直接:

sudo -u platfrmapi ./script.sh

相关内容