如何避免“root不允许运行sudo”?

如何避免“root不允许运行sudo”?

我正在尝试执行一些第三方安装程序脚本 (ansible tower setup.sh),该脚本需要以 root 身份或通过 sudo 启动,因为某些命令依赖于 root 权限。然而,一些脚本执行期间尝试使用 sudo 命令。不要问我为什么,我认为安装脚本是共同努力的结果,但存在一些不一致之处……

因此脚本失败了,我可以重现它。每次尝试以 root 身份发出 sudo 时,我都会遇到这个奇怪的错误,例如

root@machine:/home/someuser: sudo echo 1
root is not allowed to run sudo on <FQDN here>.  This incident will be reported.

在我之前使用 Ubuntu 的过程中我从未见过这样的事情(公平地说,目前在 Google 上也没有见过)。

由于无法找到所有位置并将脚本转换为不调用 sudo,因此我必须找到一种方法让 root 用户能够执行 sudo。我正在使用的 Ubuntu 16.04 服务器由公司的私有云提供商在域内以一种奇特的方式配置(我不知道这是否重要)。

我的 /etc/sudoers 如下所示:

#
# This file MUST be edited with the 'visudo' command as root.
# more bla bla
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
+unixadmin,+unixadminext      ALL= NOPASSWD: ALL

# 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

关于 sudo:

root@machine:/home/someuser# which sudo
/usr/bin/sudo
root@machine:/home/someuser# ll /usr/bin/sudo
-rwsr-xr-x 1 root root 140816 Jun  7  2017 /usr/bin/sudo*    

我错过了什么?

我将 root 用户添加到 sudo 组,但问题并未解决。

答案1

以 root 身份运行groups- Root 不在 sudo 组中,因为为什么它需要这样呢?

至于如何修复它,您可以将 root 添加到 sudo 组,或者您可以在运行 sudo 的任何脚本中进行检查(您已经排除了这种可能性,因为它可以解决您的特定问题,但它可能是其他问题的解决方案。

要将 root 添加到 sudo 组:

(以 root 身份)usermod -a -G sudo root

相关内容