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