wkhuang  wrote in message
news:3aZSaR$GvO@bbs.cis.nctu.edu.tw...
> ==> 在 "網中人"  的文章中提到:
> > 2000/05/28
> > 網中人今天對 NIS 系統再進行測試。對原來的文章做了小小修改﹐主要是針對測
試過
> > 程中需要注意的地方增加了說明。希望讀者留意﹐和共同參與測試。
> > http://pds.nchu.edu.tw/study_area/linux/linux_nfs.htm
>
> 不知您可否測試一下redhat6.2上yp之後,finger有個小bug。
> 比如同一台電腦是yp server, 也是yp client.

抱歉﹐因為弟還的 RH6.2 還沒安裝﹐或許過兩天再測試吧。

> 在建立yp帳號時,若依照你的方法,你的yp map database的來源,應該是在
> /etc下的一些檔案, 主要就是/etc/passwd,/etc/shadow, /etc/group,
/etc/gshadow

嗯﹐的確如此﹐修改 /var/yp/Makefile 裡面的參數可以改變預設內容。

> (其實這樣不太好,因為這樣root,和一些根本不該上yp的帳號都跟著進去了,建議去
> 改/var/yp/Makefile中更改YPPWDDIR = /etc改為某個另外的目錄,並將幾個
> 檔, 如passwd, shadow, group, gshadow拷過去,並只留你想讓他上yp的帳號和
> group)

您的建議非常好。不過﹐在弟的 RH6.0 上面 (後面的測試相同)﹐
 ypcat passwd 只會顯示 uid 500 以上的使用者﹐不知道是否正常呢﹖

>
> 我遇到的finger的bug(或是linux yp的bug,描述如下)
>
> 若yp map database的來源仍如網中人範例中的/etc目錄
> 1. 首先先在/etc/passwd和/etc/shadow中建立一個使用者帳號user1,
> 試著把他的fullname 欄位設為空白,就是::

這可以用 useradd 來做。

> 2. 之後讓他進入yp的map database,若是已在yp server跑起來之後,應該是
> 到/var/yp下執行make以更新yp map database(這才是正確的)

對。如果是第一次﹐可以執行 /usr/lib/yp/ypinit -m 。

> 3. 要砍掉原本/etc/passwd和/etc/shadow中的user1帳號記錄,確定local端
> 無此帳號,由YP Server取得。

只要執行過 make 就可以這樣做了。
但風險是﹕假如日後增加使用者﹐重新執行 make 的話﹐
這個帳號在 NIS 中也會消失掉。

使用您剛才的建議(即另設 YPPWDDIR )﹐
在技術上可以化解這個顧慮﹐
但必須手工的修改 passwd 檔﹐而不能單純的 copy 了。

> 4. 測試user1帳號確定可以登入

嗯﹐在我的測試中﹐還必須使用 yppasswd user1 設定密碼之後才行﹐
而且原帳號也必須已經經過密碼設定。

> 5. 但在這台server兼client上執行finger user1,竟會造成Segmentation
>    fault (core dumped),跑不出正確結果

在我的測試中﹐這個在 client 端執行會出現。
但在 sever 端則工作正常﹐當然了﹐我這台 server 並沒有作為其它 server 的
client 。
但測試過 ypbind 向自己(從 ypwhich 可以確定)﹐也沒問題。

>
> 後來我依上述方式重建user1帳號,但是full name欄位這次填字進去。
> finger user1命令就正常了。

這個在我的測試中並沒有什麼影響﹐和以前的測試一樣﹕
client 端出現 Segmentation fault (core dumped)。

> 我試過solaris 2.6, 7, 沒這個問題.. :)
> 也試著抓gun finger 1.37.tar.gz要下來裝看看, 無奈功力不足, 就是
> make 不成
>
> 有否高手能指點一二呢

對不起﹐小弟絕非高手。
對 NIS 也不熟﹐許多測試還是看到您的回應才(會得)進行。

不過﹐倒非常樂意有其它更有經驗的朋友一起來探討一下。

非常多謝您的 feedback﹗