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
해당 항목 뒤에 규칙이 와야 적용됩니다.