私は自動化されたLinuxゴールデンイメージを生成するためにPackerを使用しています。
sudoが必要なスクリプトを実行しようとすると、次のエラーが発生します。
sudo: no tty present and no askpass program specified
このエラーはインターネットで長い間議論されており、次のいずれかの方法を使用することをお勧めします。
- SSHの使用
-t
- /etc/sudoersから削除
Defaults:username !requiretty
- SUDO_ASKPASS エクスポート=/usr/libexec/openssh/ssh-askpass
- suodersグループにユーザーを追加する
%admin ALL=(ALL) NOPASSWD:ALL
Ubuntu 16.04に付属の/ etc / sudoersファイルにそのファイルが含まれていないことを確認しましたrequiretty
。 Ubuntuがまだエラーを報告しているのはなぜですか?sudo: no tty present and no askpass program specified
https://github.com/mitchellh/vagrant/issues/1482
https://askubuntu.com/questions/281742/sudo-no-tty-present-and-no-askpass-program-specified
答え1
スクリプトの順序に問題があることがわかりました。
sudoers ファイルで放浪者ユーザー sudo 権限を許可すると、問題がなくなりました。
https://github.com/chef/bento/blob/master/scripts/ubuntu/sudoers.sh
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=sudo' /etc/sudoers
sed -i -e 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=NOPASSWD:ALL/g' /etc/sudoers