我有一个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时,他会得到一个错误。 其他组用户可以完美地完成任务。
这曾经发生过一次,但是这足以将用户删除,同步并重新添加到组中。 这次没有用。
在/var/log/auth.log中logging了以下缺省错误:
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
有谁知道如何解决这一问题?
如果我们知道auth.log的输出,这可能会有所帮助。 但是,这听起来像身份validation是首先到NIS,就像在红帽下:
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资源,具体取决于auth堆栈的configuration方式。 validation您的pamconfiguration不会阻止您在本地auth后对NIS进行身份validation。
编辑:好吧,审查如何使用NIS与sudo,你知道,如果该用户存在本地系统上? 假设nsswitch正在查看本地文件,则有可能优先于NIS中的用户。