私の要件は、リモート マシンにログインし、このためのいくつかのフォルダーを作成することです。ユーザーからの入力としてユーザー名と pwd を取得し、シェル スクリプトを自動化しようとしています。
1.)次のコードを使用してマシンに ssh し、このマシンにログインするための予想される pwd を指定しました。
DSADMINPWD=dsadminpwd
PWD=pwd
/usr/bin/expect<<EOD
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no <username>@<remotemachineurl>
expect "password"
send "$PWD\n"
EOD
上記は正常に動作します。しかし、この後 su dsadmin を実行している間。以前に取得したパスワードからそのユーザーの内部に入ることができません。
2.) このマシン内から su dsadmin のようにユーザーを変更する必要があります。また、dsadmin のパスワードもあります。しかし、それは正しく機能していません。
DSADMINPWD=dsadminpwd
PWD=pwd
/usr/bin/expect<<EOD
spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no <username>@<remotemachineurl>
expect "password"
send "$PWD\n"
EOD
su dsadmin
<like to make some folders in dsadmin directory>
exit...
su dsadmin を実行すると、次のようになります
bash-3.00$
ここにはパスワードなどの兆候はありません。
上記から、それは機能していません
自動化されたスクリプトでパスワードを使用して ssh の後に su を作成することが可能かどうかを提案してください。どんな提案でも大歓迎です。
ありがとう!