![우분투 16.04에서 요구 사항을 비활성화하는 방법 [닫기]](https://linux55.com/image/94378/%EC%9A%B0%EB%B6%84%ED%88%AC%2016.04%EC%97%90%EC%84%9C%20%EC%9A%94%EA%B5%AC%20%EC%82%AC%ED%95%AD%EC%9D%84%20%EB%B9%84%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
저는 자동화된 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