在终端中须藤

在终端中须藤

当我在终端中使用 sudo 时,即使我知道密码是正确的,它也不被接受,而是得到某种“巨魔”回复,有什么原因吗?

当我使用“su root”时,它工作得很好。所以看起来 sudo 这里有问题。

我确实知道一个事实(因为读过相关内容),几个月前发现了 sudo 中的一个启用恶意攻击的故障,该故障实际上应该已经存在很多年了,并且影响了 16 到 20 之间的所有 sudo 版本。安装的版本这里(Porteus 3.2.2 86-64 基于 Slackware 并使用其存储库)是 20p2,当我寻找更新时,没有 sudo 的更新。

这个问题可能与那个故障有关吗?

答案1

我会尽力澄清一些我认为让您感到困惑的事情。

  1. sudo

    此命令“super user do”允许列出的用户/etc/sudoers以 root 身份(作为“超级用户”)运行命令使用自己的密码。这通常是通过添加一个组来配置的/etc/sudoers,该组的所有成员都将有权使用sudo。如果您查看/etc/sudoers文件,您应该会看到类似以下内容:

    %wheel ALL=(ALL) ALL
    

    这意味着“允许组wheel的所有成员使用sudo运行命令”。许多系统使用组sudo来代替,但它的想法是相同的:

    %sudo   ALL=(ALL:ALL) ALL
    

    如果您的用户是相关组的成员,您将能够通过将自己验证为普通用户来使用 sudo 运行命令。因此 sudo 使用普通用户的密码。

  2. su

    该命令允许您以不同的用户身份登录(“切换用户”,但也称为“超级用户”,因为它通常用于切换到 root)。为此,系统会要求您输入要登录的用户的密码。因此,当您运行时su root,系统将提示您输入root密码而不是您自己的用户密码。

  3. “侮辱”

    这是一个愚蠢的小选项,sudo告诉您侮辱提供错误密码的用户。从man sudoers

     insults           If set, sudo will insult users when they enter an
                       incorrect password.  This flag is off by default.
    

    这只是为了好玩。如果您的系统在您输入错误密码时对您进行严厉批评,那么您会看到如下所示的一行/etc/sudoers

    Defaults     insults
    

    要删除此“功能”,请运行sudo visudo并删除该行。

总而言之,您在系统上配置了两个密码,两个用户各一个。您的普通用户(我们称他为“ben”)有一个密码(假设为“obiwan”),root 用户有另一个密码(假设为“kenobi”)。当您运行时sudo command,您需要以“ben”身份进行身份验证,因此您需要输入obiwan密码。当您运行susu root(相同的事情)时,您需要以 root 身份进行身份验证,因此您需要输入kenobi密码。


很重要:如果您想进行任何更改/etc/sudoers,请使用visudo.绝不直接编辑该文件。visudo将为您检查语法并阻止您进行破坏语法的更改。如果直接编辑并犯了错误,则很难修复。请注意,默认情况下visudo运行vi,因此如果您不熟悉那个相当特殊的编辑器,请改用以下命令:

sudo EDITOR=/sbin/nano visudo

相关内容