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

4
我按如下方式添加了一个新用户。
inherit extrausers
EXTRA_USERS_PARAMS = "useradd -P p@ssW0rd user1;"

我正在尝试找到如何将用户添加到sudoers列表中的方法。是否有类似于extrausers的类?
更新-1:
在类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组中,我采用了在/etc/sudoers.d/0001_user1下添加一个附加文件的方法,使用recipes-extended/sudo/sudo_1.8.14p3.bbappend
do_install_append () {
    echo "user1 ALL=(ALL) ALL" > ${D}${sysconfdir}/sudoers.d/001_first
}

现在我需要帮助理解以下哪种方法在安全方面更好:
  • 取消注释 /etc/sudoers 中的 sudo 行并将 user1 添加到 /etc/sudoers
  • /etc/sudoers.d/001_first 中添加 user1

1
你可以尝试将用户默认添加到“wheel”组中,该组应该已经在sudoers中。例如:useradd -P somepass -G wheel user1; - Tuncay Göncüoğlu
人们提到它在这里起作用 https://dev59.com/kaHia4cB1Zd3GeqPZ9g4 。 - David Bensoussan
@TuncayGöncüoğlu,当我尝试添加到wheel时,我看到wheel不存在。useradd: group 'wheel' does not exist - sob
1个回答

1

因此,有两种方法可以添加具有sudo权限的用户

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

现在哪种方法适合您的发行版,在/etc/sudoers vs /etc/sudoers.d/ file for enabling sudo for a user中已经得到很好的回答。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接