Linux

“ sudo su - ” 正在切換使用者,但正在使用父 ID 創建文件

  • March 23, 2022

我們有一個 bash 命令和一個使用者“useradm”,它執行一個命令

sudo su - platfrmapi; sh script.sh
sudo su - platfrmapi; cp script.sh script_2.sh

使用者切換完美無缺,但作為“script.sh”的一部分創建的日誌歸“useradm”所有,而不是“platfrmapi”。

我們錯過了什麼嗎?

您的命令用分號連結在一起,這意味著它們是獨立執行的!首先,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

引用自:https://unix.stackexchange.com/questions/696508