⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0430nis.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 5 页
字号:
</pre></td></tr></table>

		若是想要在启动 NIS 时就自动设定好 NIS 领域的话,可以利用 /etc/sysconfig/network 
		这个档案,写成如下所示的模样∶<br />

<table class="term"><tr><td class="term"><pre>
[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>

		如此一来,你的伺服器就会在开机时,或者是在启动 NIS 相关服务时,就能够自行设定好 NIS 领域棉!<br /><br />
		</div>

		<hr /><li><span class=text_import1>主要设定档 /etc/ypserv.conf</span></li>
		<div class=block2>
		这个设定档就是 NIS 伺服器最主要的设定档啦!内容其实很简单,你可以保留预设值即可。
		不过,也可以作一些更动啦!<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /etc/ypserv.conf</span>
<span class=term_write>dns: no</span>
<span class=term_say># NIS 伺服器的使用时机绝大部分都是在区域网路内而已,所以不需要 DNS 系统,
# 只要 /etc/hosts 设定正确即可!!</span>

<span class=term_write>files: 30</span>
<span class=term_say># 预设会有 30 个资料库被读入记忆体当中,因为我们的帐号档案其实不多,
# 30 个已经足够使用了!</span>

<span class=term_write>slp: no
slp_timeout: 3600</span>
<span class=term_say># 这两个与 SLP 服务有关,因为我们仅使用单纯的 NIS ,所以不需要启动。</span>

<span class=term_write>xfr_check_port: yes</span>
<span class=term_say># 这个与 master/slave 有关,将同步更新的资料库比对所使用的埠口,
# 放置于小于 1024 的埠口内。</span>

<span class=term_say># 底下则是设定限制用户端或 slave server 查询的权限,利用冒号隔成四部分,分别为∶
# <b>[主机名称/IP] : [NIS网域名称] : [可用资料库名称] : [安全限制]</b>
# [主机名称/IP]   ∶可以使用 network/netmask 如 192.168.1.0/255.255.255.0 
# [NIS网域名称]   ∶例如本案例中的 vbirdnis
# [可用资料库名称]∶就是由 NIS 制作出来的资料库名称;
# [安全限制]      ∶包括没有限制 (none)、仅能使用 &lt;1024 (port) 及拒绝 (deny)
# 一般来说,你可以依照我们的网域来设定成为底下的模样∶</span>
<span class=term_write>127.0.0.0/255.255.255.0   : * : * : none</span>
<span class=term_write>192.168.1.0/255.255.255.0 : * : * : none</span>
<span class=term_write>*                         : * : * : deny</span>
<span class=term_say># 星号 (*) 代表任何资料都接受的意思。上面三行的意思是,开放 lo 内部介面、
# 开放内部 LAN 网域,且杜绝所有其他来源的 NIS 要求的意思。</span>

<span class=term_say># 万一上面这三行权限相关的设定无法让你的 NIS 顺利的生效时,
# 你可以先将上面三行注解,然后加入底下这一行∶</span>
<span class=term_write>*                         : * : * : none</span>
<span class=term_say># 这样应该就能够让 NIS 顺利的连线了。</span>
</pre></td></tr></table>

		</div>
		<hr /><li><span class=text_import1>设定主机名称 (/etc/hosts) 与建立信任群组 (/etc/netgroup)</span></li>
		<div class=block2>
		在 /etc/ypserv.conf 的设定当中我们谈到 NIS 大部分是给区域网路内的主机使用的,
		所以当然就不需要 DNS 的设定了。不过,由于 NIS 使用到很多的主机名称,
		<span class=text_import2>所以你一定要设定好 /etc/hosts 对应,否则会无法成功连线 NIS !</span>
		这个很重要,绝大部分的朋友无法达成 NIS server/client 的连线都是这里出问题而已。
		依据<a href="#nis_server_case">本案例的设定值</a>,你应该这样做∶<br />

<table class="term"><tr><td class="term"><pre>
[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>

		注意!如果你的主机名称与 NIS 的主机名称不一样,那么在这个档案当中还是需要将你的主机名称给他设定进来!
		否则在后面资料库的设定时,肯定会发生问题。当然啦,你也可以直接在 /etc/sysconfig/network 
		当中直接重新设定主机名称,然后重新开机,或者是利用 hostname 这个指令重新设定你的主机名称也可以。<br /><br />

		除了这个设定之外,有时候你可能需要设定 /etc/netgroup ,虽然比较新的 distributions 
		都可以略过这个档案的检查了,不过建议您还是可以了解一下的啦!这个 /etc/netgroup 
		档案可以记录在我们网域里面被信任的群,这个档案的内容当中,每一行都有三个栏位,分别以逗号『,』隔开,意义为∶<br />

<table class="term"><tr><td class="term"><pre>
&lt;host>,&lt;user>,&lt;domain>
主机,使用者帐号,领域名称
</pre></td></tr></table>

		事实上,如果这个档案是『空的』的话,那么代表著『全部的主机、帐号与领域名称都接受』的意思,因为我们已经在 
		/etc/ypserv.conf 里头设定好了关于安全的项目了,所以这个档案只要建立即可(本来是不存在的!)∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>touch /etc/netgroup</span>
</pre></td></tr></table>

		</div>

		<hr /><li><span class=text_import1>启动所有相关的服务</span></li>
		<div class=block2>
		接下来当然是先启动所有相关的服务棉,这包括 RPC, ypserv 以及 yppasswdd 棉!
		不过,如果你的 RPC 本来就已经启动的话,那就不要重新启动 portmap 了!<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>
[root@linux ~]# <span class=term_command>/etc/init.d/yppasswdd start</span>
</pre></td></tr></table>

		注意,主要的 NIS 服务是 ypserv ,不过,如果要提供 NIS 用户端的密码修改功能的话,
		最好还是得要启动 yppasswdd 这个服务才好。在启动完毕后,我们可以利用 rpcinfo 来检查看看∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>rpcinfo -p localhost</span>
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100004    2   udp    942  ypserv
    100004    1   udp    942  ypserv
    100004    2   tcp    945  ypserv
    100004    1   tcp    945  ypserv
    100009    1   udp    950  yppasswdd

[root@linux ~]# <span class=term_command>rpcinfo -u localhost ypserv</span>
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
</pre></td></tr></table>

		要出现上述的画面才表示正确的启动了 ypserv 喔!若有需要开机立即启动 ypserv 的话,请使用 
		chkconfig 来处理吧!<br /><br />
		</div>

		<hr /><li><span class=text_import1>建立资料库</span></li>
		<div class=block2>
		在完成了上面的所有步骤后,接下来我们得要开始将主机上面的帐号档案转成资料库档案啦!
		转换的动作直接透过 /usr/lib/yp/ypinit 这个指令来处理即可!整个步骤是这样做的∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>/usr/lib/yp/ypinit -m</span>
At this point, we have to construct a list of the hosts which will run NIS
servers.  master.vbirdnis 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 <span class=term_write>&lt;control</span> D>.
        next host to add:  <span class=term_write>master.vbirdnis</span>  <span class=term_say>&lt;==这个地方系统会主动捉到</span>
        next host to add:                   <span class=term_say>&lt;==按下 [ctrl]-d</span>
The current list of NIS servers looks like this:

master.vbirdnis

Is this correct?  [y/n: y] <span class=term_command>y</span>
We need a few minutes to build the databases...
Building <span class=term_write>/var/yp/vbirdnis/ypservers</span>...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/vbirdnis'
Updating passwd.byname...
<span class=term_say>....中间省略....</span>
gmake[1]: Leaving directory `/var/yp/vbirdnis'

master.vbirdnis has been set up as a NIS master server.

Now you can run <span class=term_write>ypinit -s master.vbirdnis</span> on all slave server.
</pre></td></tr></table>

		要注意出现的资讯当中,在告知你可以直接输入 [ctrl]-d 以结束的那个地方,
		你的主机名称会主动的被捉出来,注意!这个主机名称务必需要在 /etc/hosts 可以被找到 IP 的对应,
		否则会出现问题。另外,万一在执行 ypinit -m 时,出现如下的错误,那肯定就是有些资料没有被建立了!<br />

<table class="term"><tr><td class="term"><pre>
gmake[1]: *** No rule to make target `/etc/aliases', needed by 
`mail.aliases'.  Stop.
gmake[1]: Leaving directory `/var/yp/vbirdnis'
make: *** [target] Error 2
Error running Makefile.
Please try it by hand.

[root@linux ~]# <span class=term_command>touch /etc/aliases</span>
<span class=term_say># 解决方法很简单呐!缺少什么档案,就 touch 他就是了!</span>
[root@linux ~]# <span class=term_command>/usr/lib/yp/ypinit -m</span>
<span class=term_say># 然后再重新执行一次即可!</span>
</pre></td></tr></table>

		如果是如下的错误,那可能是因为∶<br />
		<ul><span class=text_import2>
		<li>你的 ypserv 没有顺利启动,请利用 rpcinfo 检查看看;
		<li>你的主机名称没有对应好,请检查 /etc/hosts
		</span></ul>

<table class="term"><tr><td class="term"><pre>
gmake[1]: Entering directory `/var/yp/vbirdnis'
Updating passwd.byname...
failed to send 'clear' to local ypserv: RPC: Program not 
registeredUpdating passwd.byuid...
failed to send 'clear' to local ypserv: RPC: Program not 
registeredUpdating group.byname...
....
</pre></td></tr></table>

		建立了资料库后,你必需要通知 ypserv 与 yppasswdd 这两支服务,告知资料库已经被更改了,
		所以你可以这样做∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>/etc/init.d/ypserv restart</span>
[root@linux ~]# <span class=term_command>/etc/init.d/yppasswdd restart</span>
</pre></td></tr></table>

		要注意啊,如果你的使用者密码有变动过,那么你就得要重新制作资料库,重新启动 ypserv 及 yppasswdd 喔!
		注意注意啊!<br /><br />
		</div>

		<hr /><li><span class=text_import1>与 slave server 及资料库有关的一些设定 (optional)</span></li>
		<div class=block2>
		当我们执行了 ypinit -m 之后,所有的主机上面的帐号相关档案会被转成资料库档案,
		这些资料库会被放置到 /var/yp/"nisdomainname" 当中,我们的 nisdomainname 是 vbirdnis ,
		所以被建立的资料库通通被放置到 /var/yp/vbirdnis/ 目录中棉!您可以自行去检查看看。<br /><br />

		事实上,我们的 ypinit 其实是透过 /var/yp/Makefile 来进行资料库的建立的呢!
		所以,我们当然也就可以藉由该档案内的功能来处理某些特定档案的更新棉!
		举例来说,若你仅修改了一个使用者的帐号参数而已,所以仅有 /etc/passwd 有被变更过,
		那么如何仅针对这个档案进行资料库的更新呢?你可以这样做∶<br />

<table class="term"><tr><td class="term"><pre>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -