Cry*_*ICE 4 linux ubuntu packer
我试图向在Ubuntu 14.04安装期间创建的用户授予无密码sudo权限.但是,创建映像时,不存在与sudo相关的任何更改.以下是预置文件的相关部分:
# Create Vagrant User
d-i passwd/user-fullname string Vagrant User
d-i passwd/username string vagrant
d-i passwd/user-password password vagrant
d-i passwd/user-password-again password vagrant
d-i user-setup/encrypt-home boolean false
d-i user-setup/allow-password-weak boolean true
# Setup passwordless sudo for vagrant user
d-i preseed/late_command string echo "vagrant ALL=(ALL:ALL) NOPASSWD:ALL" > /target/etc/sudoers.d/vagrant
d-i preseed/late_command string chmod 0440 /target/etc/sudoers.d/vagrant
Run Code Online (Sandbox Code Playgroud)
我也试过了
d-i preseed/late_command string in-target echo "vagrant ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/vagrant
Run Code Online (Sandbox Code Playgroud)
当图像完成/etc/sudoers.d/vagrant将不存在于任何地方.
即使我运行命令:
d-i preseed/late_command string mkdir /stuff
d-i preseed/late_command string in-target mkdir /stuff
Run Code Online (Sandbox Code Playgroud)
stuff目录将不存在.
我知道这些命令正在运行,因为我曾经输错了一次并在安装过程中看到了错误.所有其他preseed命令似乎都在工作.
我已经阅读了有关in-target指令的信息,安装程序将创建一个具有最终文件系统的/ target,但我似乎无法使这些工作.
使用打包器我运行了一个shell脚本配置,它执行相同的回声,并且有效.
mat*_*ata 10
问题是preseed文件只能有一个preseed/late_command部分,而不是多个部分.
如果需要执行多个命令,可以将它们作为单个late_command分隔,;例如
d-i preseed/late_command string \
in-target cmd1 args ... ; \
in-target cmd2 args ... ; \
...
Run Code Online (Sandbox Code Playgroud)
小智 6
在这种特殊情况下,这对我有用:
d-i preseed/late_command string \
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /target/etc/sudoers.d/vagrant ; \
in-target chmod 440 /etc/sudoers.d/vagrant ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |