Linux
“ sudo su - ” 正在切換使用者,但正在使用父 ID 創建文件
我們有一個 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