2
を実行しようとしたとき、私は、ユーザーを作成し、そのユーザーシェルスクリプト「sudoを:なしのtty存在と指定されていませんaskpassパッケージプログラム」sudoコマンドに
sudo useradd -m devops sudo passwd devops sudo adduser devops sudo su - devops -c "sh /path/to/myscript.sh"
- として別のスクリプトを実行するシェルスクリプトを持っています
このスクリプトは、ユーザーを作成し、パスワードを設定し、sudoグループにユーザーを追加します。
- myscript.shには、sudo previlagesを使用するコマンドが含まれています。 (sudo apt-get update、sudo apt-get installソフトウェア - プロパティ - 共通など)。 ssh-keygen、curl、wgetのようなコマンドもあります。
- sudo以外のコマンドはすべて正しく実行され、結果は例外として生成されます。
- しかしsudoは
- を「全くのtty存在していないaskpassパッケージプログラムが指定されていません」これはなぜこのような場合に起こるんし、どのように私はこれを克服することができますか?エラーを与えることによって、失敗したコマンド
- 私は同様の質問を見ましたが、この文脈で明確な説明があれば感謝します。ありがとうございます。
ありがとうございます、このスクリプトは動作します。しかし、私はあなたの答えの最後の部分を理解していませんでした。はい、コマンドの多くはroot権限を必要とします。 sudoを使用する際の問題は何ですか? –
@ user3356760、それはかなり問題ではありません。 "マスター"スクリプトが主にrootのために書かれている場合は、rootのために 'sudo'を省略し、ユーザにroot権限でスクリプトを実行させることをお勧めします。さらに、 'sudo'はユーザーの資格を5分間キャッシュします('/etc/sudoers'で 'timeout'によって上書きされない場合)。ユーザは再びパスワードを入力する必要があります。したがって、 'sudo'で起動したプロセスが' timeout'よりも多く実行された場合、次の 'sudo'呼び出しは再びパスワードを要求します。ああ、 –
しかし、ユーザーが終了するまで、資格情報はセッションのために保持されます。再度、感謝します。 –