
我的要求是以不同的使用者身分登錄,這需要密碼驗證,並在我從使用者帳戶執行的 shell 腳本中以該使用者身分執行一些命令。
範例:user1 正在執行腳本。要求是使用密碼以 user2 登入,並使用單一 shell 腳本執行一組命令。
答案1
您可以使用多種方式:
- 使用
su
。透過 su 你可以這樣執行指令:
su user -c "command"
或者
su - user -c "command"
不同的是,當你有破折號時,你將獲得目標使用者的環境。使用此命令,您將被要求輸入目標使用者的密碼
- 使用
sudo
:
sudo -u user "command"
使用此命令,您可以使用或不使用密碼(您的密碼)執行它
- 使用
ssh
:
使用 ssh,您可以使用使用者密碼、金鑰密碼(如果有)執行命令
ssh user@localhost "command"
PS 還有其他可能的方法,但很少可能,例如 rsh
答案2
使用該命令su [username]
允許您從當前位置在該使用者的上下文中執行命令。使用以下命令su - [username]
將您切換到該使用者的主目錄。如果省略使用者名,您將切換到 root。