次のようにplink経由でサーバーに接続しています。
plink -ssh -l username -pw password example.Host.com -m C:\PuTTY\input.txt > C:\PuTTY\output.txt
input.txtには
whoami
su - newsuser
whoami
output.txtには
username
username
SUはplink経由で機能していません。
PuTTYで同じコマンドを試してみると、正常に機能し、 "newsuser"として出力を取得します。
Linux PuTTY-パスワード関連の問題についてsuを自動化します
上記の解決策を試しましたが、うまくいきませんでした。
ありがとう
まず、それはあなたが思うようには機能しません。
スクリプト内のコマンドは順番に実行されます。 su
(成功した場合)は、対話型のシェルセッションを実行し、ユーザー入力(コマンド)を待ちます。 su
が存在すると、2番目のwhoami
が実行されます(username
を表示)。
とにかく、あなたのsu
は実際には機能しません。
まず、su
は確かにエラーメッセージを出力します。それは何ですか?コマンドでは、標準出力のみをキャプチャします。エラー出力もキャプチャします(2>&1
)。 su
にはインタラクティブな端末が必要な場合がありますが、-m
スイッチは、デフォルトで非対話型端末を使用します。追加 -t
switch この場合に役立ちます。
su
を自動化することは一般的に悪い考えであることに注意してください。 root権限を必要とするいくつかのコマンドを実行する必要がある場合、より良い解決策は、専用の秘密鍵をsudoers
ファイル内のコマンドに関連付けることです。次に、PlinkでSudo
と秘密鍵を使用します。