루트는 sudo가 이번에는 특정 사용자에게 비밀번호를 묻는 메시지를 표시하지 않도록 어떻게 보장합니까?

루트는 sudo가 이번에는 특정 사용자에게 비밀번호를 묻는 메시지를 표시하지 않도록 어떻게 보장합니까?

lxc호스트를 설정한 다음 컨테이너를 구성 하는 스크립트를 작성 중입니다 . 이 스크립트를 무인으로 사용하고 싶습니다. 컨테이너를 생성하고 실행한 후 가끔 사용자로 로그인하여 sudo. 남은 유일한 일은 내가 그것을 할 수 있는지 확인하는 것입니다 sudo.

비활성화하고 싶지는 않습니다 sudo. 사용자가 실제로 비밀번호를 입력할 때 어떤 일이 발생하는지 모방하고 싶을 뿐입니다.

지금까지 나는 다음을 수행했습니다.

if [ ! -d /var/lib/lxc/$puppetmastername/rootfs/var/lib/sudo/$user ]; then
    sudo mkdir /var/lib/lxc/$puppetmastername/rootfs/var/lib/sudo/$user
fi
sudo touch /var/lib/lxc/$puppetmastername/rootfs/var/lib/sudo/$user/0

sudo grep '!tty_tickets' /etc/sudoers
if [ $? -ne 0 ]; then
    echo 'Defaults         !tty_tickets' >>/var/lib/lxc/puppetmaster/rootfs/etc/sudoers
fi

불행하게도 이것만으로는 충분하지 않습니다. 컨테이너는 여전히 비밀번호를 요구합니다.

답변1

파일을 편집 /etc/sudoers하고 사용자에게 비밀번호 없이 루트로 특정 프로그램을 실행할 수 있는 권한을 부여해야 합니다.

yourusername ALL = (root) NOPASSWD: /path/to/prog1, /path/to/prog2, ...

귀하의 경우 다음을 시도해 볼 수 있습니다.

myusername ALL = (root) NOPASSWD: /bin/mkdir, /usr/bin/touch, /bin/grep

NOPASSWD해당 항목이 사용자와 일치하는 마지막 항목인지 확인해야 합니다 . 항목 중 두 개가 /etc/sudoers사용자와 일치하는 경우 NOPASSWD해당 항목 뒤에 규칙이 와야 적용됩니다.

관련 정보