尽管所有权和模式设置正确,但 sudo 仍失败

尽管所有权和模式设置正确,但 sudo 仍失败

sudo: must be setuid root尽管 中的可执行文件/usr/bin/sudo具有所有权root:root和模式 4755 ( -rwsr-xr-x),但我还是遇到了可怕的错误/etc/sudoers。模式为 440。我的用户处于 sudoers 中,并且具有所有适当的设置。我已清除并重新安装了该软件包,但无济于事。

我最初没有配置这台机器;默认情况下,它的维护工作落在了我的肩上。这种行为是否可能是与 PAM 的交互?如果是,我该如何修复它?这台机器运行的是 Debian squeeze 2.6.26-2-686 SMP 内核。没有写任何有关失败的信息,/var/log/auth.log所以它在此之前就已经退出了。

更新:这是 sudoers(删除了许多多余的注释行),但我很确定这不是问题。

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

# Host alias specification

# User alias specification
User_Alias              SUDOERS=david
Defaults:SUDOERS        !lecture,!authenticate

# User privilege specification
root    ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
SUDOERS ALL=(ALL:ALL) ALL

是的,我知道这太松懈了。等我让它工作起来后,我会把它收紧。据我所知,它甚至从未进入读取此文件的阶段,但当 sudo 进程本身尝试升级其用户 ID 时,它就会死机。几乎相同的设置在几台(>10 台)其他机器上完美运行,所以我认为一定是外部配置导致了失败。

答案1

感谢 MadHatter,我找到了解决方案。文件系统被创建为一个大根分区(不是我创建的!),其中 /usr、/var、/home 等只是子目录。出于某种原因,它也被挂载为 nosuid,大概是出于错误的安全尝试。我将其提升为答案,以便它更容易被遇到同样问题的人看到。我应该检查挂载选项,但没有想到,因为遇到这种情况太愚蠢了。

相关内容