本帖最后由 静默 于 2013-12-3 11:33 编辑
1. 在server120.example.com上确认ypbind这个包已经安装,如果没有安装就安装一下 2. rpm –qa | grep ypbind如果没有显示的话,就执行yuminstall -y ypbind 3. 在客户机上输入nisdomainname notexample 4. 为了确保你的配置能在重启后保存,在/etc/sysconfig/network文件中写入 5. vim /etc/sysconfig/network/ 在配置文件中加入 NISDOMAIN=notexample 6. vim /etc/yp.conf 添加一行 domainnotexample server 192.168.0.150 7. 重启ypbind服务使配置生效 8. 执行ypcat passwd 然后可以看到NIS服务器上的用户的信息(如果无法查看的话,就用system-config-authentication在enable NIS Support前面打勾 9. 这个只是提供一个身份认证或者名称的信息,因为NIS没有和NSS或者是PAM进行关联,为了确认这一点,执行getent passwd,你只能看到本地用户,而没有NIS用户10. 打开/etc/nsswitch.conf找到 passwd: files shadow: files group: files 修改成 passwd: filesnis shadow: filesnis group: filesnis 11.这个配置会在查找用户的时候找完本地用户,然后查找NIS服务器的用户 12.再次执行getent passwd 会显示本地用户和NIS用户 13.当执行gentent passwdroot的时候按照配置文件中写的,会先在本地找root,然后到NIS服务器上找root,然后返回root的信息。 14.为了验证一下,我们可以临时修改一下/etc/nsswitch.conf修改成 passwd: nis[NOTFOUND=return] files shadow: nis[NOTFOUND=return] files group: nis[NOTFOUND=return] files 15.这里是如果有NIS服务器,直接查找NIS服务器,在NIS服务器没找到root就返回return,而不会查找本地的用户,如果没有NIS服务器,则只会在本地查找
16.然后再次运行 getent passwdroot 就不会显示出root账户的信息了 17.然后停止ypbind服务,执行getentpasswd root 测试 发现可以看到root的信息 然后将ypbind的服务启动 实验2 可插拔式身份认证(PAM) 通过在文本界面下登录去查看PAM cat /etc/pam.d/login 检查系统身份认证 cat /etc/pam.d/system-auth 试着用NIS用户登录你的客户端,用加密的密码 然后执行getent passwd可以看到可用账户的密码的hash值,当这些hash值在/etc/passwd中的时候,pam_unix.so模块也能用来进行身份认证 NIS用户可以更改NIS客户端的密码,但是NIS客户端不能更改 NIS用户密码
实验3 pam基本身份认证和本地管理工具 1. 创建一个本地用户并且加入wheel组 useradd –G wheel wheeluser 2. 用root对su文件做备份 cp /etc/pam.d/su /etc/pam.d/su.bak 3. 取消/etc/pam.d/su文件中的第四行的注释 4. 现在以wheel组里的用户身份去su 不需要密码提示,当是NIS用户的时候,su的时候需要密码 5.在/etc/pam.d/su顶部添加 auth required pam_permit.so保存这个文件 然后再su的时候不会影响将sufficient换成required 然后再su的时候开始需要输入密码,密码正确但是无法登录 5. required:表示该行以及所涉及模块的成功是用户通过鉴别的必要条件。换句话说,只有当对应于应用程序的所有带 required标记的模块全部成功后,该程序才能通过鉴别。同时,如果任何带required标记的模块出现了错误,PAM并不立刻将错误消息返回给应用程序,而是在所有模块都调用完毕后才将错误消息返回调用他的程序。反正说白了,就是必须将所有的模块都执行一次,其中任何一个模块验证出错,验证都会继续进行,并在执行完成之后才返回错误信息。这样做的目的就是不让用户知道自己被哪个模块拒绝,通过一种隐蔽的方式来保护系统服务。就像设置防火墙规则的时候将拒绝类的规则都设置为drop一样,以致于用户在访问网络不成功的时候无法准确判断到底是被拒绝还是目标网络不可达。 6. sufficient:表示该行以及所涉及模块验证成功是用户通过鉴别的充分条件。也就是说只要标记为sufficient的模块一旦验证成功,那么PAM便立即向应用程序返回成功结果而不必尝试任何其他模块。即便后面的层叠模块使用了requisite或者required控制标志也是一样。当标记为sufficient的模块失败时,sufficient模块会当做 optional对待。因此拥有sufficient 标志位的配置项在执行验证出错的时候并不会导致整个验证失败,但执行验证成功之时则大门敞开。所以该控制位的使用务必慎重。(引用自 http://blog.iyunv.com/zhgn2/article/details/7531421) 7. 删除pam_permit这行,然后在pam_rootok.so前面加上注释,使用root去su,然后每次都会需要密码的 |