“用户不在 sudoers 文件中”,但实际上

“用户不在 sudoers 文件中”,但实际上


我已经阅读了很多关于为特定用户启用 sudo 访问权限的帖子,但到目前为止这些帖子对我没有帮助。
情况是:
我正在运行 Debian Testing。系统上只有两个帐户:“root”和用户帐户“benny”。用户“benny”应该能够使用 sudo 以 root 权限运行命令(当然我先安装了 sudo),这就是我使用 visudo 编辑“/etc/sudoers”文件的原因,如下所示:

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
benny   ALL=(ALL:ALL) ALL #<<<<<<<<<<<<<<< EDIT HERE!

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
ALL ALL= NOPASSWD: /usr/sbin/g15daemon

这根本不起作用——当发出“sudo”命令时,它一直说“benny 不在 sudoers 文件中。此事件将被报告。”所以我将 benny 添加到组“sudo”,因为它经常被建议:

usermod -aG sudo benny

以“benny”身份重新登录后,命令

groups

节目

benny cdrom sudo fuse

我觉得这很好。此外

 cat /etc/group | grep sudo 

节目

 sudo:x:27:benny

但是如果我尝试,例如

sudo apt update

它仍然说 Benny 不在 sudoers 文件中。
我确实阅读了很多关于这个问题的文章,每个人都只建议我上面提到的两个步骤之一。
我在这里遗漏了什么?我猜这是一件非常愚蠢的事情,但我没有看到。任何帮助都值得感激!提前致谢!

答案1

我下载了 sudo 的源代码,似乎这种情况可能发生在以下情况下:您的 sudo 配置为使用 LDAP 或 SSSD 方法来确定权限。如果其中任何一个可用,则会在文件方法之前对其进行检查。这可能只在机器是在公司环境中为您设置的,或者在其他地方?在这些情况下,错误消息有点不准确,因为它仍然引用 sudoers“文件”。

我从未使用过其中任何一个,但它们似乎可以在 /etc/sudo.conf 文件中配置,因此您可以查看是否有这样的东西。查看man sudo它提到了一个 LDAP 插件,并man sudo.conf提供了有关已配置插件的信息(仅供参考)。

答案2

我遇到了非常相同的问题并通过删除、清除和安装 sudo 来“解决”它。

相关内容