asc*_*hil 5 linux password nis
这看起来应该很简单,但如果是的话,我一定错过了一些东西。我有一个 Linux NIS master,我希望能够从中更改用户的密码(在忘记密码和类似情况的情况下),但我不能。
一些细节:我正在运行 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
Run Code Online (Sandbox Code Playgroud)
这在末尾/etc/passwd:
+::::::/bin/false
Run Code Online (Sandbox Code Playgroud)
此外,还/etc/pam.d/passwd包含标准 RHEL 指令:
password substack system-auth
Run Code Online (Sandbox Code Playgroud)
/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
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我们使用 md5 而不是 sha512,因为我们有一些不支持 sha512 的 Solaris 客户端。)
如果我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
Run Code Online (Sandbox Code Playgroud)
日志文件 ( /var/log/secure) 没有帮助:
passwd: pam_unix(passwd:chauthtok): password not changed for phil on ypmaster.domain.tld
Run Code Online (Sandbox Code Playgroud)
相反,如果我运行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.
Run Code Online (Sandbox Code Playgroud)
但这要求任何需要重置密码的系统管理员都知道(或从我们锁定的密码保险箱中查找)系统的根密码,这是我想避免的情况。
那么我需要如何配置master才能让我们更改用户密码而不必每次都输入系统的root密码呢?
正如您所发现的,您不能以passwdNIS 客户端上的 root 身份来更改 NIS 服务器上的用户密码。这确实是安全常识。
同样,您发现 yppasswd 需要 root 密码(在 NIS 服务器上)才能让您更改用户的密码。这是额外的安全措施,前提是您应该是 NIS 管理员(NIS 服务器上的 root)才能更改其他人的密码。
不幸的是,这种安全性并不是您想要的,所以 yppasswd 在这里妨碍了。
我认为这实际上是一个相对较新的事物,或者是特定于操作系统的变体——早在我的 Sun Admin 时代,当我定期处理 NIS 时,
yppasswd如果您是 NIS 服务器上的 root 用户,我就会信任您...
由于您的要求(让授权管理员更改 NIS 密码),我建议您编写一个 shell 脚本(或您喜欢的语言)来直接编辑 NIS 映射并重建/推送它们。
您可以通过一些创造性的sed工作来完成此操作,然后授予您的管理员使用sudo.
最终,尽管您可能想要考虑放弃 NIS(LDAP 是替代 NIS 的新热门,几乎是一个直接替代品,而且更易于管理)。
| 归档时间: |
|
| 查看次数: |
22676 次 |
| 最近记录: |