저는 자동화된 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
우분투 16.04와 함께 제공되는 /etc/sudoers 파일에 해당 파일이 포함되어 있지 않음을 확인했습니다 requiretty
. 우분투에서 여전히 오류를 보고하는 이유는 무엇입니까?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