Chinaunix首页 | 论坛 | 博客
  • 博客访问: 640413
  • 博文数量: 486
  • 博客积分: 10125
  • 博客等级: 上将
  • 技术积分: 5842
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(486)

文章存档

2011年(52)

2010年(107)

2009年(289)

2008年(38)

我的朋友

分类: LINUX

2010-01-25 22:17:15

yppasswd:yppasswdd not running on NIS master host在客户端执行yppasswd时一直报这个错,郁闷了很久,最后终于解决了,方法在最底部。

安装NIS
[root@16nn ~]# rpm -ivh /media/Server/ypserv-2.19-5.el5.i386.rpm

warning: /media/Server/ypserv-2.19-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:ypserv                 ########################################### [100%]

设定NIS域名
[root@16nn ~]# nisdomainname 16nn.com
[root@16nn ~]# nisdomainname
16nn.com
启动服务,该服务依赖portmap,portmap服务默认已安装并自动启动
[root@16nn ~]# service ypserv start
Starting YP server services:                               [  OK  ]
[root@16nn ~]# service yppasswdd start
Starting YP passwd service:                                [  OK  ]
[root@16nn ~]# service portmap status
portmap (pid 2460) is running...
初始化
[root@16nn ~]# /usr/lib/yp/ypinit -m

 
At this point, we have to construct a list of the hosts which will run NIS
servers.  16nn.com is in the list of NIS server hosts.  Please continue to add
the names for the other hosts, one per line.  When you are done with the
list, type a .
        next host to add:  16nn.com
        next host to add:
The current list of NIS servers looks like this:

 
16nn.com

 
Is this correct?  [y/n: y]
We need a few minutes to build the databases...
Building /var/yp/16nn.com/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/16nn.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/16nn.com'

 
16nn.com has been set up as a NIS master server.

 
Now you can run ypinit -s 16nn.com on all slave server.
为保证NIS在每次重启系统时能够自动加载,做如下操作:
[root@16nn ~]# chkconfig ypserv on
[root@16nn ~]# chkconfig yppasswdd on
[root@16nn ~]# chkconfig --list|grep yp
ypbind          0:off   1:off   2:off   3:off   4:off   5:off   6:off
yppasswdd       0:off   1:off   2:on    3:on    4:on    5:on    6:off
ypserv          0:off   1:off   2:on    3:on    4:on    5:on    6:off
ypxfrd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@16nn ~]# echo 'NISDOMAIN=16nn.com' >> /etc/sysconfig/network
添加测试用户,在每次新添加用户后记得重新初始化
[root@16nn ~]# useradd nistest
[root@16nn ~]# passwd nistest
Changing password for user nistest.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@16nn ~]# /usr/lib/yp/ypinit -m
 
补充内容:
1、主配置文件/etc/ypserv.conf
该文件保持默认即可,对于访问控制一般使用/var/yp/securenets。若非要配置该文件,可参考下面的信息
# Host                     : Domain  : Map              : Security
host :授权或禁止访问的计算机,它由地址/掩码对确定.例如 192.168.1.0/255.255.255.0 . *表示所有主机;
map :该字段表示访问的NIS映射表项名称。例如:passwd.byuid。*表示映射表中所有的字段都可用;
security :授权访问类型
  none :允许访问,不加强安全性;
  port :允许特权端口访问;只接收源端口小于1024的连接;
  deny :禁止访问;
如:
192.168.11.0/255.255.255.0 : * : * : none
* : * : * : deny
2、/var/yp/securenets该文件中未定义的全部拒绝访问
host 192.168.11.1        -----针对主机
255.255.255.0 192.168.11.0        -----针对网段,先掩码后地址段
 
 
客户端依据下面的图操作
输入命令setup回车 

使用su切换用户,如果像下面一样,就说明已经OK了
[root@client ~]# su nistest
bash-3.2$

 

客户端也可以采用命令的形式配置

设定NIS域名
[root@centosa ~]# nisdomainname 16nn.com 
[root@centosa ~]# echo 'NISDOMAIN=16nn.com'>>/etc/sysconfig/network

服务设为自动启动
[root@centosa ~]# chkconfig ypbind on


[root@centosa ~]# echo 'domain 16nn.com server 192.168.11.2'>>/etc/yp.conf
[root@centosa ~]# vi /etc/nsswitch.conf

找到如下项:
passwd:     files
shadow:     files
group:      files

#hosts:     db files nisplus nis dns
hosts:      files dns

将其修改为:
passwd:     files nis
shadow:     files nis
group:      files nis

#hosts:     db files nisplus nis dns
hosts:      files nis dns  

启动服务
[root@centosa ~]# service ypbind start
Turning on allow_ypbind SELinux boolean
Binding to the NIS domain:                                 [  OK  ]
Listening for an NIS domain server.
 

配置客户端在启动时登录到NIS域
[root@centosa ~]# vi /etc/sysconfig/authconfig
找到如下行:
USENIS=no
修改为:
USENIS=yes  

切换用户测试
[root@centosa ~]# su nistest
bash-3.2$

客户端的一些测试命令
[root@centosa ~]# ypcat passwd
nistest:$1$BzGQaGCh$n26B9qRzmcWiC8qTRSaNy.:500:500::/home/nistest:/bin/bash
[root@centosa ~]# ypmatch nistest passwd
nistest:$1$BzGQaGCh$n26B9qRzmcWiC8qTRSaNy.:500:500::/home/nistest:/bin/bash
[root@centosa ~]# ypwhich -x
Use "ethers"    for map "ethers.byname"
Use "aliases"   for map "mail.aliases"
Use "services"  for map "services.byname"
Use "protocols" for map "protocols.bynumber"
Use "hosts"     for map "hosts.byname"
Use "networks"  for map "networks.byaddr"
Use "group"     for map "group.byname"
Use "passwd"    for map "passwd.byname"
[root@centosa ~]# ypcat hosts
127.0.0.1               16nn.com localhost.localdomain localhost

 

结合NFS,让用户的主目录漫游

在NIS服务器上把用户的主目录给共享出来,并启动NFS,默认NFS已安装
[root@16nn ~]# echo '/home *(rw,sync)'>>/etc/exports
[root@16nn ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                        [  OK  ]
Starting NFS daemon:                                      [  OK  ]
Starting NFS mountd:                                        [  OK  ]

设置NFS自动启动
[root@16nn ~]# chkconfig nfs on
 

客户端

配置系统在需要时自动挂载
[root@centosa ~]# echo '/home  /etc/auto.home --timeout=30'>>/etc/auto.master
[root@centosa ~]# cp /etc/auto.misc /etc/auto.home
[root@centosa ~]# vi /etc/auto.home
[root@centosa ~]# echo '*               -ro,soft,intr           192.168.11.2:/home/&'>>/etc/auto.home
 

启动服务
[root@centosa ~]# service autofs restart
Stopping automount:                                        [  OK  ]
Starting automount:                                        [  OK  ]
 

再切换用户测试,发现前面的符号变掉了,pwd查看,竟然是/home/nistest,这个目录在本机中是不存在的,通过df -h查看是把服务器上该用户的主目录挂载在本机。切换回root过一会儿再查看/home下,nistest这个目录会自动消失掉
[root@centosa ~]# su - nistest
[nistest@centosa ~]$ pwd
/home/nistest
[nistest@centosa ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             5.7G  2.7G  2.8G  50% /
/dev/sda1              99M   12M   83M  12% /boot
tmpfs                 254M     0  254M   0% /dev/shm
192.168.11.2:/home/nistest
                      996M   34M  911M   4% /home/nistest

NFS相关的一些命令

exportfs -rv        重新挂载,将共享目录显示到屏幕上
exportfs -au        卸载所有已挂载的访问
showmount -e IP        查看共享文件
less /var/lib/nfs/xtab        查看访问记录日志

相关安全参数
      rw:  可写权限
      ro:  只读取权限
      no_root_squash:  如果登入共享目录的用户是root,则对于这个共享目录而言,它具有root权限,不安全!
      root_squash:     ..........如果是root登陆,自动变成匿名用户.
      all_squash:      不论登陆的用户是谁,都自动变成匿名用户.相当于nobody

 实际应用
      /tmp         *(rw,no_root_squash)
      /test      192.168.11.1(rw)
      /home/test  192.168.11.2(rw)  *(ro)

 

在做好之后遇到一个问题,客户端用yppasswd来更新密码时,一直报下面的错:

yppasswd:yppasswdd not running on NIS master host

在服务器上运行该命令正常。

后来无意中在客户端上ping了下16nn.com也就是NIS的域名,发现解析的是127.0.0.1

然后在/etc/hosts中添加192.168.11.2        16nn.com        --192.168.11.2是我的NIS服务器IP

再运行yppasswd,呵呵,竟然好了。分析了下觉得是:yppasswd在更新密码时用的NIS域名来访问服务器的,NIS域名如果解析为127.0.0.1,在客户端上肯定执行不成功了,因为客户机上本来就没有运行这个服务,服务器本身有这个服务当然能执行成功了。

另外一种情况:
yppasswd:yppasswdd not running on NIS master host  ("hostname").
这时候你ping下hostname看解析的为多少,如果为127.0.0.1的话,那就赶紧在/etc/hosts中加入IP  hostname,如果解析正常,自然不会报错了。

NFS固定端口:
[root@16nn ~]# grep -v ^# /etc/sysconfig/nfs
RQUOTAD_PORT=811
LOCKD_TCPPORT=812
LOCKD_UDPPORT=812
MOUNTD_PORT=813
STATD_PORT=814
services nfs restart       # 重启服务
[root@16nn ~]# rpcinfo -p       # 查看端口是否为设定的
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100011    1   udp    811  rquotad
    100011    2   udp    811  rquotad
    100011    1   tcp    811  rquotad
    100011    2   tcp    811  rquotad
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp    812  nlockmgr
    100021    3   udp    812  nlockmgr
    100021    4   udp    812  nlockmgr
    100021    1   tcp    812  nlockmgr
    100021    3   tcp    812  nlockmgr
    100021    4   tcp    812  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100005    1   udp    813  mountd
    100005    1   tcp    813  mountd
    100005    2   udp    813  mountd
    100005    2   tcp    813  mountd
    100005    3   udp    813  mountd
    100005    3   tcp    813  mountd
IPTABLES设置:
iptables -R INPUT 5 -s 192.168.11.0/24 -m state --state NEW -p tcp -m multiport --destination-ports 111,2409,811:814 -j ACCEPT
iptables -R INPUT 6 -s 192.168.11.0/24 -m state --state NEW -p udp -m multiport --destination-ports 111,2409,811:814 -j ACCEPT
阅读(1461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~