/etc/sudoers.d/ 파일에서 비대화식으로 명령을 실행하는 방법은 무엇입니까?

/etc/sudoers.d/ 파일에서 비대화식으로 명령을 실행하는 방법은 무엇입니까?

내 프로젝트 목적 중 하나로 dpkg-sig 설치를 자동화하고 있습니다. 이제 비대화형으로 설치하고 싶습니다.

/etc/sudoers.d/ 내부 파일에 다음을 추가했습니다.

Cmnd_Alias DPKGSIG_INSTALL = /usr/bin/apt install -y dpkg-sig, \
                            /bin/apt install -y dpkg-sig
abc ALL=(root) NOPASSWD: DPKGSIG_INSTALL
Defaults:abc !requiretty

다음과 같이 golang 코드를 사용하여 dpkg-sig를 설치하려고 합니다.

installDpkgSig := "/usr/bin/sudo DEBIAN_FRONTEND=noninteractive apt install -o Dpkg::Options::=--force-confold -y dpkg-sig"
executor.cmd = *exec.Command("bash", "-c", installDpkgSig)

설치할 수 없습니다. 다음 오류가 발생합니다.

sudo: sorry, you are not allowed to set the following environment variables: DEBIAN_FRONTEND

하지만 삭제하면DEBIAN_FRONTEND=비대화형install 명령에서 실행하면 정상적으로 작동합니다. 비대화형으로 설치를 어떻게 실행합니까?

답변1

마침내 이 문제를 해결할 수 있게 되었습니다. /etc/sudoers.d/ 파일을 변경할 필요가 없습니다.

위의 코드를 아래와 같이 수정하면 작동합니다.

installDpkgSig := "export DEBIAN_FRONTEND=noninteractive && /usr/bin/sudo apt install -o Dpkg::Options::=--force-confold -y dpkg-sig"
executor.cmd = *exec.Command("bash", "-c", installDpkgSig)

Bash 세션이 종료되면DEBIAN_FRONTEND기본값으로 설정됩니다.

관련 정보