组中的一个用户无法使用 sudo,而其他用户则可以

组中的一个用户无法使用 sudo,而其他用户则可以

我在 debian lenny 服务器上遇到了一个奇怪的问题。该服务器是一个 NIS 客户端,用于与另一台服务器共享用户/组,并且在 sudoers 文件中放置了以下内容:

%groupX ALL=(ALL) ALL

这样 groupX 的成员就有了 sudo 权限。此外,我还有一个属于该组的用户:

uid=1234(user.name) gid=1234(user.name) groups=1234(user.name),1001(groupX),<snip>

但当用户尝试 sudo 时,仍然会出错。其他组用户可以正常使用 sudo。

这种情况以前发生过一次,但只需删除、同步并重新将用户添加到组中即可。这次没有用。

在 /var/log/auth.log 中记录了以下默认错误:

Jul  6 11:08:35 servername sudo: user.name : user NOT in sudoers ; TTY=pts/1 ; PWD=/home/u/user.name ; USER=root ; COMMAND=/bin/bash

有谁知道如何解决这一问题?

答案1

如果我们知道 auth.log 的输出,可能会有所帮助。但是,听起来身份验证首先要经过 NIS,就像在 Red Hat 下一样:

passwd:     nisplus, files
shadow:     nisplus, files
group:      nisplus, files

或者在某些发行版中:

passwd:     nisplus, compat
shadow:     nisplus, compat
group:      nisplus, compat

如果您需要让用户在该服务器上使用 sudo,则需要让本地会计定义优先,如下所示:

passwd:     files, nisplus
shadow:     files, nisplus
group:      files, nisplus

请记住,这可能会阻止用户访问 NIS 资源,具体取决于身份验证堆栈的配置方式。验证您的 pam 配置不会阻止您在本地进行身份验证后对 NIS 进行身份验证。

编辑:好的,回顾一下如何使用 sudo 来使用 NIS,您知道该用户是否存在于本地系统上吗?假设 nsswitch 正在查看本地文件,则可能优先于 NIS 中的用户。

相关内容