gpt4 book ai didi

linux - 使用 ubuntu preseed 和 packer 的无密码 sudo

转载 作者:太空狗 更新时间:2023-10-29 11:24:38 27 4
gpt4 key购买 nike

我正在尝试向在 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

我也试过

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

当图像完成时/etc/sudoers.d/vagrant 将不存在于任何地方。

即使我运行命令:

d-i preseed/late_command string mkdir /stuff
d-i preseed/late_command string in-target mkdir /stuff

stuff 目录将不存在。

我知道命令正在运行,因为我打错了一次,在安装过程中看到了一个错误。所有其他预置命令似乎都有效。

我已经阅读了有关 in-target 指令的信息,并且安装程序将创建一个具有最终文件系统的/target,但是我似乎无法使这些工作正常进行。

使用加壳器,我运行了一个 shell 脚本,该脚本执行相同的回显并且有效。

最佳答案

问题是一个 preseed 文件只能有一个 preseed/late_command 部分,不能有多个。

如果你需要执行多个命令,你可以将它们作为一个单独的 late_command 用 ; 分隔,例如

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

关于linux - 使用 ubuntu preseed 和 packer 的无密码 sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32272413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com