我正在編寫一個shell腳本,使用shell腳本本身中提到的密碼登錄到任何用戶帳戶。我的shell腳本如下:如何在腳本中使用密碼從shell腳本登錄到用戶帳戶?
mypass="helloworld"
echo mypass>su myaccount
執行這個shell腳本,我仍然在我的當前用戶帳戶,而不是myaccount
TL之後,DR我想知道如何通過登錄到用戶帳戶一個通過運行它的shell腳本。
我正在編寫一個shell腳本,使用shell腳本本身中提到的密碼登錄到任何用戶帳戶。我的shell腳本如下:如何在腳本中使用密碼從shell腳本登錄到用戶帳戶?
mypass="helloworld"
echo mypass>su myaccount
執行這個shell腳本,我仍然在我的當前用戶帳戶,而不是myaccount
TL之後,DR我想知道如何通過登錄到用戶帳戶一個通過運行它的shell腳本。
使用expect腳本可以通過腳本發送密碼,下面是登錄到su帳戶和執行pwd命令的非常基本的期望腳本。
#!/usr/bin/expect
spawn su myaccount # Spawning the su process
expect "Password:*" # Wait/expect for the Password string from the spawned process
send "uraccpassword\r" # send the password to spawned process as an input.
expect "*bash*"
send "pwd\r"
expect "*bash*"
如果你想登錄到帳戶不需要提供密碼,那麼你就需要使用ssh-keygen
帳戶生成SSH密鑰及公鑰複製到你想登錄到帳戶。此外,我會始終在生成的密鑰上設置密碼並使用ssh-agent
進行管理。
您需要使用expect來發送密碼 – Raghuram
或者您需要'ssh' – BMW
如果您使用'./ scrip.sh'執行腳本,那麼它將在新的子shell中執行。即使是這個'su',一旦這個shell完成了,你就會被留在原來的賬戶shell中。 – RedX