linux切換用戶執行腳本

在我們日常運維中,在一個用root權限執行的腳本中,需要經常切換到不同用戶執行對應的命令,因此如下總結了如何在root用戶有執行權限的腳本中如何切換到不同用戶執行對應的命令或者腳本的幾種方式:

1. su - user -c 'command'  # 單獨一條命令有沒有單引號或者雙引號包裹都可以
ex: su - zzl -c 'whoami'

2. su - user -c ' # 多條命令用單引號或雙引號包裹,如果要對命令輸出進行賦值,那麼只能用單引號
command1
command2
'
ex: 
su - zzl -c '
free -m
user=$(whoami)
echo $user
'

3. su - user -s /bin/bash script.sh
ex: su - zzl -s /bin/bash /home/zzl/a.sh

4. su - user <<EOF #這個方式,不能對命令的輸出進行賦值
command1
command2
EOF
ex:
su - zzl << EOF
whoami
free -m
EOF
whoami

#下面這樣寫$user不會有輸出
ex: 
su - zzl << EOF
user=$(whoami)
echo $user
free -m
EOF
whoami

發佈了10 篇原創文章 · 獲贊 11 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章