1. ホーム
  2. linux

[解決済み] TTYを上書きせずにsu/sudo/sshにパスワードを渡すには?

2022-05-02 19:27:59

質問

Cシェルのプログラムを書いているのですが、以下のようなことをします。 su または sudo または ssh . 彼らは皆、標準入力やコマンドラインではなく、コンソール入力(TTY)にパスワードが欲しいのです。

どなたか解決策をご存じないでしょうか?

パスワードレスの設定 sudo はオプションではありません。

期待する というオプションがありますが、私の使っているシステムにはありません。

解決方法は?

sudoには、標準入力からパスワードを受け取るための-Sオプションがあります。以下は、manのエントリです。

    -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に関しては、その使い方を自動化/スクリプト化しようと何度も試みたのですが、うまくいきませんでした。プロンプトを出さずにコマンドにパスワードを渡すビルドイン方式はないようです。他の方がおっしゃっているように、" 期待する ユーティリティはこのジレンマに対処することを目的としているように見えますが、最終的には、正しいプライベートキー認証を設定することが、これを自動化しようとする場合の正しい方法です。