質問: ttyを上書きせずにパスワードをsu / sudo / sshに渡す方法は? suまたはsudoまたはsshを実行するcシェルプログラムを作成しています。彼らはすべて、stdinやコマンドラインではなく、コンソール入力(tty)でパスワードを求めています。誰もが解決策を知っていますか?パスワードなしのsudoのセットアップはオプションではありません。 expect はオプションの可能性がありますが、必要最低限のシステムには存在しません。
回答: sudoの場合、標準入力からパスワードを受け入れるための-sオプションがあります。男性のエントリは次のとおりです。 -s the -s (stdin) option causes sudo to read the password from the standard input instead of the terminal device. これにより、次のようなコマンドを実行できます。echo mypassword | sudo -s ls /tmp sshに関しては、その使用を自動化/スクリプト化するために多くの試みを行いましたが、成功しませんでした。プロンプトなしでコマンドにパスワードを渡す組み込みの方法はないようです。他の人が言ったように、「 expect 」ユーティリティはこのジレンマに対処することを目的としているように見えますが、最終的に、これを自動化しようとする場合は正しい秘密鍵認証を設定することが正しい方法です。