如何更改 Linux NIS 主控上的密码?

如何更改 Linux NIS 主控上的密码?

这看起来应该很简单,但如果真的如此,那我肯定遗漏了什么。我有一个 Linux NIS 主控,我想从中更改用户的密码(在忘记密码或类似情况的情况下),但我做不到。

一些细节:我运行的是 Scientific Linux 6.4,带有 ypserv-2.19-26、ypbind-1.20.4-30 和 yp-tools-2.9-12。NIS 配置为使用/etc/yp/passwd其密码映射(即不是系统密码文件(系统密码文件)。系统作为自身的客户端,ypwhich返回“localhost”。

由于非特权用户不应登录到 NIS 主服务器,因此我们在 中进行以下设置/etc/nsswitch.conf

passwd:     files compat

结尾处是/etc/passwd

+::::::/bin/false

此外,还/etc/pam.d/passwd包含标准 RHEL 指令:

password   substack system-auth

/etc/pam.d/system-auth是 的符号链接/etc/pam.d/system-auth-ac,其中包含:

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so md5 shadow nis nullok try_first_pass use_authtok
password    required      pam_deny.so

(顺便说一句,我们使用 md5 而不是 sha512,因为我们有一些 Solaris 客户端不支持 sha512。)

如果我passwd以 root 身份运行,它会提示我输入新密码,但无法更改它:

$ sudo passwd phil
Changing password for user phil.
New password: 
Retype new password: 
NIS password could not be changed.
passwd: Authentication token manipulation error

日志文件(/var/log/secure)没有帮助:

passwd: pam_unix(passwd:chauthtok): password not changed for phil on ypmaster.domain.tld

如果我跑了yppasswd,我更改密码:

$ sudo yppasswd phil
Changing NIS account information for phil on ypmaster.domain.tld.
Please enter root password:
Changing NIS password for phil on ypmaster.domain.tld.
Please enter new password:
Please retype new password:

The NIS password has been changed on ypmaster.domain.tld.

但这要求任何需要重置密码的系统管理员知道(或从我们锁定的密码保险箱中查找)系统的根密码,这是我想要避免的情况。

那么我需要如何配置主机才能允许我们更改用户密码,而不必每次都输入系统的根密码?

答案1

正如您所发现的,您无法passwd以 NIS 客户端上的 root 身份更改 NIS 服务器上的用户密码。这确实是常识性的安全问题。

类似地,您发现 yppasswd 要求您输入 root 密码(在 NIS 服务器上),然后它才会允许您更改用户密码。这是额外的安全保障,前提是您必须是 NIS 管理员(NIS 服务器上的 root)才能更改其他人的密码。
不幸的是,这种安全保障并不是您想要的,因此 yppasswd 会在这里成为阻碍。

我认为这实际上是一个相对较新的东西,或者是一个特定于操作系统的变体 - 在我使用 Sun Admin 的日子里,当我定期处理 NIS 时,yppasswd如果您是 NIS 服务器上的 root 权限,我就会信任您……


由于您的要求(允许授权管理员更改 NIS 密码),我建议您编写一个 shell 脚本(或您喜欢的语言),直接编辑 NIS 映射并重建/推送它们。
您可以通过一点创造性的sed工作来完成此操作,然后授予您的管理员使用 运行该脚本的能力sudo

但最终你可能还是会考虑放弃 NIS (LDAP 成为替代 NIS 的新热点,基本上是一个直接替代品,并且更容易管理)。

相关内容