如何在 shell 腳本中以不同使用者登入並執行一組命令?

如何在 shell 腳本中以不同使用者登入並執行一組命令?

我的要求是以不同的使用者身分登錄,這需要密碼驗證,並在我從使用者帳戶執行的 shell 腳本中以該使用者身分執行一些命令。

範例:user1 正在執行腳本。要求是使用密碼以 user2 登入,並使用單一 shell 腳本執行一組命令。

答案1

您可以使用多種方式:

  1. 使用su。透過 su 你可以這樣執行指令:

su user -c "command"

或者

su - user -c "command"

不同的是,當你有破折號時,你將獲得目標使用者的環境。使用此命令,您將被要求輸入目標使用者的密碼

  1. 使用sudo

sudo -u user "command"

使用此命令,您可以使用或不使用密碼(您的密碼)執行它

  1. 使用ssh

使用 ssh,您可以使用使用者密碼、金鑰密碼(如果有)執行命令

ssh user@localhost "command"

PS 還有其他可能的方法,但很少可能,例如 rsh

答案2

使用該命令su [username]允許您從當前位置在該使用者的上下文中執行命令。使用以下命令su - [username]將您切換到該使用者的主目錄。如果省略使用者名,您將切換到 root。

相關內容