シェル内で、一般ユーザから別の一般ユーザにexceptコマンドにて「su - ユーザ」を使って
ユーザの切り替えを行っています。
その後、切り替えたユーザで後続の処理を進めたいのですが、手段はあるのでしょうか。
expect抜けると元のユーザに戻ってしまいます。
コマンド
expect -c "
swapn su - user
expect 'Passwd:'
send 'pw'
"
別処理 ← こちらをuserで実行したいです。
背景と状況
製品PGM(シェル)をエラー判定させたいため、ラッパーシェルを作成しました。
ラッパーシェルの実行ユーザはuserAであり変更が困難です。
製品PGMはuserBで実行させる必要があります。
sudoでuserBを実行させる手法もあると思いますが、OSの設定変更も難しい状況です。
検証
expect内にて、whoamiを記載しましたが動作しませんでした。
PW="root"
expect -c "
set timeout 3
spawn su -
expect "password:"
send "${PW}\n"
expect "#"
send "whoami\n"
"
処理結果
spawn su -
パスワード:
[root@testsv ~]# [user@testsv tmp]$
expect "#"の個所を
" #"
"# "
などにしても変わりませんでした。
記載方法が間違っていると思うのですが、どのように記載をしたらいいでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/17 12:01
2020/11/17 12:05
2020/11/17 12:22
2020/11/17 12:36
2020/11/17 12:51
2020/11/18 15:12
2020/11/18 15:18
2020/11/18 15:30 編集