passwordless sudo с использованием ubuntu preseed и упаковщика

Я пытаюсь предоставить привилегии sudo без пароля для пользователя, созданного во время установки Ubuntu 14.04. Однако при создании изображения ни одно из изменений, связанных с sudo, не существует. Вот соответствующие части файла:

# Create Vagrant User di passwd/user-fullname string Vagrant User di passwd/username string vagrant di passwd/user-password password vagrant di passwd/user-password-again password vagrant di user-setup/encrypt-home boolean false di user-setup/allow-password-weak boolean true # Setup passwordless sudo for vagrant user di preseed/late_command string echo "vagrant ALL=(ALL:ALL) NOPASSWD:ALL" > /target/etc/sudoers.d/vagrant di preseed/late_command string chmod 0440 /target/etc/sudoers.d/vagrant 

Я также пробовал

 di preseed/late_command string in-target echo "vagrant ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/vagrant 

Когда изображение заканчивается, /etc/sudoers.d/vagrant не будет существовать нигде.

даже если я запускаю команды:

 di preseed/late_command string mkdir /stuff di preseed/late_command string in-target mkdir /stuff 

каталог файлов не будет существовать.

Я знаю, что команды запускаются, потому что однажды я сделал опечатку и увидел ошибку во время установки. Кажется, что все остальные команды preseed работают.

Я прочитал о директиве in-target и что установщик создаст / цель, у которой есть конечная файловая система, но я, похоже, не могу сделать эту работу.

используя упаковщик Я запустил сценарий оболочки, который выполняет одно и то же эхо и работает.

Проблема в том, что файл preseed/late_command может иметь только один раздел preseed/late_command , а не несколько.

Если вам нужно выполнить несколько команд, вы можете использовать их как одну команду late_command, разделенную ; например

 di preseed/late_command string \ in-target cmd1 args ... ; \ in-target cmd2 args ... ; \ ... 

В этом конкретном случае это то, что работает для меня:

 di preseed/late_command string \ echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /target/etc/sudoers.d/vagrant ; \ in-target chmod 440 /etc/sudoers.d/vagrant ;