web-dev-qa-db-ja.com

Ubuntu16.04でrequirettyを無効にする方法

私はpackerを使用して自動化されたLinuxゴールデンイメージを作成しています。

Sudoを必要とするスクリプトを実行しようとすると、次のエラーが発生します

_Sudo: no tty present and no askpass program specified
_

このエラーはインターネット上で詳細に議論されています。推奨されるアドバイスは、次のいずれかを使用することです。

  1. _-t_を使用したssh
  2. / etc/sudoersから削除します_Defaults:username !requiretty_
  3. エクスポートSudo_ASKPASS =/usr/libexec/openssh/ssh-askpass
  4. ユーザーをsuodersグループに追加します%admin ALL=(ALL) NOPASSWD:ALL

Ubuntu16.04に同梱されている/ etc/sudoersファイルにrequirettyが含まれていないことを確認しました。なぜubuntuはまだエラーを出すのですか_Sudo: no tty present and no askpass program specified_

enter image description here

https://github.com/mitchellh/vagrant/issues/1482

https://askubuntu.com/questions/281742/Sudo-no-tty-present-and-no-askpass-program-specified

1
spuder

スクリプトの順序に問題があったことが判明しました。

Sudoersファイル内でvagrantユーザーの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
1
spuder