为什么我可以运行 `sudo bash` 而不能运行 `sudo su`?

为什么我可以运行 `sudo bash` 而不能运行 `sudo su`?

我正在努力标准化我们环境中的 sudo 访问。首先,我了解当前的设置。

目前,我们sudo bash无需输入任何密码即可进入 root shell。我知道建议对单个命令授予 sudo 访问权限,但至少现在,我想要一种机制,让我们输入密码,然后获得 root shell。

重新迭代,sudo bash或者sudo -s工作正常,但是当我输入 时sudo su -,它提示输入我的密码,一旦我输入它,它就会给我一条消息“*抱歉,用户 <用户名> 不允许执行 '/bin/su -' 作为扎根于lt;服务器名称>'。这让我很好奇它是如何sudo bash工作的。

/etc/sudoers文件中,我看到与此上下文相关的两行:

        root    ALL=(ALL)   ALL
        %wheel  ALL=(ALL)   ALL

而且我不是这个%wheel团体的一员。admin是我的默认组 in/etc/passwd并且admin组不是wheel组的一部分/etc/group。因此,为了使其sudo su -正常工作,我在sudoers文件中添加了以下行并且它起作用了。

        %admin  ALL=(ALL)   ALL

但我无法理解:

  • 每个人的工作情况如何sudo bash
  • wheel默认情况下每个人都是该组的成员吗?

如果我在这里遗漏了什么,请告诉我。另外,如果有更好的方法来做事。

操作系统:CentOS 7.2(红帽系列)


事实证明,其中有某些文件/etc/sudoers.d,这就是sudo bash工作方式,但我认为它已被注释掉......谢谢。

#includedir /etc/sudoers.d

答案1

根据评论汇总的答案:

sudo bash为什么要为不在该组中的人工作的问题wheel通过认识到主sudoers配置文件包含进一步的配置文件/etc/sudoers.d(并且这些文件之一允许这种情况发生)而得到解决。

是的,一#开始#include就令人困惑。

关于如何安全地向系统管理员授予超级用户权限的进一步问题已通过参考老问题得到解答“获得root权限最安全的方法是:sudo、su还是login?”。从该问题的答案可以明显看出,这不是一个简单的问题。

另相关:“是否有充分的理由运行 sudo su?

相关内容