📄 0430nis.htm
字号:
[root@linux ~]# <span class=term_command>cd /var/yp</span>
[root@linux yp]# <span class=term_command>make passwd</span>
Updating passwd.byname...
Updating passwd.byuid...
</pre></td></tr></table>
这样做就能够更新了,只不过更新后的资料库会被放置到 /var/yp 当中,而不是 /var/yp/vbirdnis 当中,
或许你还得需要手动移动一下该档案就是了。<br /><br />
再者,如果你有 slave 伺服器的话,总是需要进行 master/slave 的同步化吧?
那如何告知我们的 master 伺服器将资料库提供给 slave 呢?这个时候就得要修改 /var/yp/Makefile 棉!
您可以自行进入该档案内查阅一些资料,不过,基本上你只要改一个地方就好了∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /var/yp/Makefile</span>
<span class=term_say># 找到底下这一行∶</span>
NOPUSH=true
<span class=term_say># 将他改成这样∶</span>
NOPUSH=<span class=term_write>false</span>
</pre></td></tr></table>
这个设定值可以将资料库给他『推 (push)』到其他的 slave 伺服器上头!接下来,你必需要告知 master
要推出去的资料库是给哪部伺服器?所以,你还得要修改这里∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /var/yp/ypservers</span>
master.vbirdnis
<span class=term_write>slave.vbirdnis</span>
<span class=term_say># 增加上头这一行!</span>
</pre></td></tr></table>
你可以将所有的 slave 伺服器都加到 /var/yp/ypservers 档案当中,只要记得该伺服器的 IP
必需要在 /etc/hosts 内可以找到对应才行喔!如果你要提供 master/slave 伺服器的资料库档案传输时,
那么还需要启动 ypxfrd 这个服务才行!这个服务可以让 slave 伺服器主动连结上 ypxfrd 来更新资料库,
可以免除系统管理原自己手动更新啦!启动方式太简单了吧!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>/etc/init.d/ypxfrd start</span>
</pre></td></tr></table>
做到这里就 OK 啦!您的 NIS Master 伺服器已经搞定棉!接下来,您就可以准备处理 slave 伺服器,或是直接处理
NIS client 端棉!此外,如果您的 master 机器想要直接将某些特定的资料库直接传给 slave 主机的话,
那么可以使用 yppush 这个指令喔!例如下列范例∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>yppush -h slave.vbirdnis passwd.*</span>
</pre></td></tr></table>
如果 master/slave 的资料库不符合的话,那么该 passwd.byname 及 passwd.byuid 就会同步更新了!
很简单吧! ^_^!也就是说,您得先要制作资料库,然后再利用 yppush 来处理资料库的同步啊!
亦即是∶<br />
<ol><span class=text_import2>
<li>先以 useradd username 或 passwd username 等制作出 master 上面的实体用户;
<li>再以 make 或者直接以 /usr/lib/yp/ypinit -m 来制作出最新的资料库;
<li>利用 yppush 这个指令功能来进行资料库的传输。
</span></ol>
如此一来,您就不需要进行 slave 上面的其他资料库处理啦!方便又简单!
</div>
</div>
<hr /><a NAME="nis_server_slave"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">NIS slave
的设定与启动 (optional)</span><br />
<div class=block2>
参考<a href="#fig_01">图一</a>的 NIS 运作流程当中,我们知道由于
<span class=text_import2>NIS 伺服器预设还是会先搜寻自己的 /etc/passwd, /etc/shadow 等资讯,因此你最好先将 NIS
slave 的帐号与密码资料作个简单的修订,让他保留在比较乾净的帐号资料,例如仅有系统帐号 (UID 小于 500
内的系统帐号) 就是一个不错的环境</span>。这样可以避免 UID 重复出现的问题 (在 /etc/passwd 及 NIS
的环境中都出现相同的 UID ,但其相关参数却并相同时,可能有困扰)。<br /><br />
NIS slave 的设定要比 NIS master 简单多了,事实上,很多设定都一样!你甚至可以复制 NIS master
的很多设定档哩!在你处理完 NIS slave 伺服器的帐号密码相关档案后,接下来你可以这样设定喔∶<br /><br />
<hr /><li><span class=text_import1>设定网域</span></li>
<div class=block2>
同样的, NIS slave 也需要设定相同的网域,设定方式可以参考前一小节的介绍,我们这里很快的介绍一遍∶<br />
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>1. 直接建立领域名称</span>
[root@linux ~]# <span class=term_command>nisdomainname vbirdnis</span>
<span class=term_hd>2. 开机立即启动此一领域名称</span>
[root@linux ~]# <span class=term_command>vi /etc/rc.d/rc.local</span>
<span class=term_say># 加入底下这一行∶</span>
<span class=term_write>/bin/nisdomainname vbirdnis</span>
<span class=term_hd>3. 预设在启动 ypserv 时,设定 NIS 领域名</span>
[root@linux ~]# <span class=term_command>vi /etc/sysconfig/network</span>
<span class=term_say># 加入底下这一行∶</span>
<span class=term_write>NISDOMAIN=vbirdnis</span>
</pre></td></tr></table>
</div>
<hr /><li><span class=text_import1>主要设定档 /etc/ypserv.conf</span></li>
<div class=block2>
这个设定档也是很简单的啦!可以与前面的 NIS master 相同即可。在鸟哥的这个例子当中,
我是直接在该档案加入这三行而已喔!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /etc/ypserv.conf</span>
<span class=term_write>127.0.0.0/255.255.255.0 : * : * : none
192.168.1.0/255.255.255.0 : * : * : none
* : * : * : deny</span>
</pre></td></tr></table>
</div>
<hr /><li><span class=text_import1>/etc/hosts 及 /etc/netgroup</span></li>
<div class=block2>
这两个档案不陌生吧?直接设定他吧!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>touch /etc/netgroup</span>
[root@linux ~]# <span class=term_command>vi /etc/hosts</span>
<span class=term_write>192.168.1.2 master.vbirdnis
192.168.1.10 slave.vbirdnis
192.168.1.100 client.vbirdnis</span>
</pre></td></tr></table>
</div>
<hr /><li><span class=text_import1>启动所有服务及建立资料库</span></li>
<div class=block2>
还记得吧?我们需要 portmap 与 ypserv 喔!至于 yppasswdd 这个功能主要是在修改主控伺服器 (master)
上面的帐号密码,而 slave 只是在取得 master 的资料库而已,本身并不具备修改资料库的能力的,
所以 slave 当然就不需要这个东西啦!所以你可以这样设定∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>/etc/init.d/portmap start</span>
[root@linux ~]# <span class=term_command>/etc/init.d/ypserv start</span>
</pre></td></tr></table>
那如何取得来自 master 伺服器的资料库档案呢?还是一样得要透过 /usr/lib/yp/ypinit 这支程式啦!
只是他的指令下达会变成这样喔∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>/usr/lib/yp/ypinit -s master.vbirdnis</span>
<span class=term_say>参数∶
-s ∶后面接预计取得的 master 主机名称!</span>
We will need a few minutes to copy the data from master.vbirdnis.
Transferring hosts.byname...
Trying ypxfrd ... not running
Transferring services.byname...
Trying ypxfrd ... not running
<span class=term_say>....中间省略....</span>
</pre></td></tr></table>
虽然使用上头的指令事实上会出现有错误的资讯,就是那个『Trying ypxfrd ... not running』的资讯,
但事实上资料库的转移还是成功的!不相信的话,你可以使用底下这个指令来测试一下资料库是否正确∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ypcat -h localhost passwd.byname</span>
</pre></td></tr></table>
如果有正确的输出帐号/密码资料的话,呵呵!那就是 OK 的啦!如此一来,您的 NIS slave 就启动 OK 啦!
不过,由于您的 master 伺服器可能随时都会有帐号/密码的改变,所以你其实是可以使用 ypxfrd
这个服务来帮助资料库在 master/slave 间转移的!如果你有在 master 伺服器启动 ypxfrd 的话,
那么你可以在 slave 的工作排程上这样处理的∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /etc/crontab</span>
<span class=term_say># 在最后加入以 ypxfr 传输资料的 script 喔!</span>
<span class=term_write>20 * * * * root /usr/lib/yp/ypxfr_1perhour
40 6 * * * root /usr/lib/yp/ypxfr_2perday
55 6,18 * * * root /usr/lib/yp/ypxfr_2perday</span>
<span class=term_say># 事实上,这三支程式只是利用 /usr/lib/yp/ypxfr 来进行资料库的更新,
# 不过鸟哥实际进行时,似乎有点小问题,或许需要修改一下上述三个档案,
# 我们以 /usr/lib/yp/ypxfr_1perhour 为例来说明好了∶</span>
[root@linux ~]# <span class=term_command>vi /usr/lib/yp/ypxfr_1perhour</span>
<span class=term_say># 找到这一行∶</span>
$YPBINDIR/ypxfr $map
<span class=term_say># 将他改成这样∶</span>
$YPBINDIR/ypxfr $map <span class=term_write>-h master.vbirdnis</span>
</pre></td></tr></table>
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 事实上,如果 master 伺服器有启动 ypxfrd 的话,那么下达 ypinit -s master.vbirdnis 时,
就不会有错误讯息棉! ^_^
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
如此一来,系统将会针对不同的资料库来与 master 伺服器进行比对,若发现 master
的资料较新时,则会进行更新!很方便吧!当然啦,您也可以直接透过系统管理员执行
ypinit -s master.vbirdnis 来处理就是了。此外,直接利用 master 机器上的 yppush
也是个不错的思考方向!<br /><br />
</div>
<hr /><li><span class=text_import1>启动 ypbind ,让 slave 也可以查询帐号/密码</span></li>
<div class=block2>
如果你的 slave 并没有启动 ypbind 的话,那么 slave 将无法以 master 所提供的帐号来登入的!
所以接下来,<span class=text_import2>你必须要启动 ypbind
这个查询的功能</span>,好让我们的 slave 伺服器也可以针对我们自己的 NIS 网域 (vbirdnis) 进行查询。
至于 <a href="#ypbind">ypbind</a> 的启动方式则请参考下一小节的
<a href="#ypbind">NIS client 设定方式</a>吧!<br /><br />
至此为止,你就已经具有一部 NIS master 及多部 NIS slave 的伺服器棉!接下来就来玩玩 NIS client 吧!<br />
</div>
</div>
<hr /><a NAME="nis_server_fire"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">防火墙设置</span><br />
<div class=block2>
又来到了防火墙的规划了!要注意的是,我们的 NIS 与 NFS 都是使用 RPC Server 的,所以棉,都可以直接管制
111 这个 port 即可!能够直接以 iptables 管理 111 这个 port ,例如仅允许 192.168.1.0/24
这个网域进来的话,可以在你的防火墙规则上面加上∶<br />
<table class="term"><tr><td class="term"><pre>
/sbin/iptables -A -s 192.168.1.0/24 --dport 111 -j ACCEPT
/sbin/iptables -A --dport 111 -j DROP
</pre></td></tr></table>
</div>
</div>
<hr /><a NAME="nis_client"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">NIS Client 端的设定</span><br />
<div class=block1>
我们知道网路连线是双向的,所以 NIS server 提供资料库档案,NIS client 当然也需要提供一些连线的软体棉!
这个连线的软体就是 ypbind 啦!此外,如同<a href="#fig_01">图一</a>的介绍,在 NIS client 端有登入需求时,
NIS client 基本上还是先搜寻自己的 /etc/passwd, /etc/group 等资料后才再去找 NIS server 的资料库啊!
<span class=text_import2>所以 NIS client 最好能够将本身的帐号密码删除到仅剩下系统帐号,亦即
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -