Yocto Jethro:如何将用户添加到 sudoers 列表

Yocto Jethro: how do I add user to sudoers list

我添加了一个新用户如下

inherit extrausers
EXTRA_USERS_PARAMS = "useradd -P p@ssW0rd user1;"

我正在尝试查找如何将用户添加到 sudoers 列表。有没有像extrausers

这样的class

更新-1:

在 class classes/extrausers.bbclass 中我看到 usermod 支持。以下是否可行?

inherit extrausers
EXTRA_USERS_PARAMS = "useradd -P p@ssW0rd user1;\
                      usermod -aG sudo user1"

更新 2:

我尝试添加 IMAGE_INSTALL_append += " sudo "

inherit extrausers
EXTRA_USERS_PARAMS = "useradd -P foobar -G sudo user1;"

但这并不能帮助我实现将 user1 添加到 sudoers 列表的效果。我在执行 sudo -v

时看到以下错误
Sorry, user user1 may not run sudo on <machine-name>.

更新 3:

发现sudoers文件中sudo组注释如下: # %sudo ALL=(ALL) ALL 因此,即使将 user1 添加到 sudo 组也无济于事

我没有将 user1 添加到 sudo 组,而是采用了使用 recipes-extended/sudo/sudo_1.8.14p3.bbappend

/etc/sudoers.d/0001_user1 下添加插入文件的方法
do_install_append () {
    echo "user1 ALL=(ALL) ALL" > ${D}${sysconfdir}/sudoers.d/001_first
}

现在我需要帮助来理解以下哪种方法在安全性方面更好?

所以有两种方法可以添加具有 sudo 功能的用户

  • 将用户添加到 sudo 组并在 /etc/sudoers
  • 中启用 sudo 组
  • ${D}${sysconfdir}/sudoers.d/ 下创建一个文件并在其中为用户添加 sudo 规则。

现在哪种方法适合您的发行版在 /etc/sudoers vs /etc/sudoers.d/ file for enabling sudo for a user

中得到了很好的回答