萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

NFS 與 NIS 設定完整指南:網路檔案系統與中央帳號管理

使用 Telnet 連線遠端主機後,資料存回本地並不方便。若想將遠端資料掛載到本地檔案系統,NFS(Network File System)即能派上用場。此外,Telnet 禁止 root 直接登入,需先以一般帳號登入再 su 切換,意味著每台機器都得建立獨立帳號。若想像 Windows NT 一樣擁有中央帳號資料庫,Linux 可透過 NIS(Network Information Service)實現。

只需指定一台 Linux 作為 NIS 伺服器,其他機器作為客戶端。大型網路可加裝 Slave NIS 伺服器分擔 Master 負載。以下介紹 NFS 與 NIS Server/Client 設定,Slave NIS 設定留待自行研究。

設定 NFS

關鍵在伺服器端 /etc/exports 檔案。建議先輸入 man exports 參考說明。設定錯誤會導致重開機困擾。範例如下:

/tmp (rw,no_root_squash)
/home/public/sw *.siyongc.domain(ro,insecure)
/home/public/upload 192.168.0.22(rw,all_squash,anonuid=2043,anongid=2044)

第一行完整分享 /tmp,rw 可讀寫,no_root_squash 允許 root 權限(預設會將 root 壓縮為 nobody)。第二行分享 /home/public/sw 給 siyongc.domain 結尾機器,insecure 不使用安全連接埠,ro 唯讀。第三行分享 /home/public/upload 僅給 192.168.0.22,rw 可讀寫,但寫入檔案轉換為 anonymous 身份,並指定 UID/GID 確保身份一致。

不想直編 /etc/exports 可用 netconf 選擇「Exported file system (NFS)」設定。設定後重啟 nfsd:

/etc/rc.d/init.d/nfs restart

測試 NFS

客戶端掛載指令:

mount -t nfs redhat52:/tmp /mnt

常見錯誤:Permission denied,多為 /etc/exports 權限設定不當。建議從簡單設定測試,或查 /var/log/messages 找原因(如客戶端主機名稱錯誤,需確認 /etc/hosts 或 DNS 正反解)。

link_relative 可能導致 Unknown keyword 錯誤使 nfsd 無法啟動,修改設定後務必先用 stop/start 確認 nfsd 正常啟動再關機。遇 rpc 錯誤可重啟 portmap:

/etc/rc.d/init.d/portmap restart

升級伺服器核心後建議同步更新客戶端核心,避免 mount version 警告。更改主機名稱或 domain 易導致 NFS 啟動延遲,可清理 /var/lib/nfs/rmtab。若問題持續請詳讀 man exports 及 NFS HOWTO。

設定 NIS

建立中央 NIS 伺服器

先確保網路正常。以下為作者實踐步驟:

  1. 修改 /etc/inetd.conf,取消註解 time 服務兩行(stream tcp、dgram udp),重啟 inetd:/etc/rc.d/init.d/inet restart。
  2. 修改 /var/yp/securenets,確保含本機與區域網段(如 255.255.255.0 192.168.0.0)。
  3. 修改 /etc/ypserv.conf(內容參考原文)。
  4. 執行 rpcinfo -u localhost ypserv 確認服務運行,若無回應則啟動 /etc/rc.d/init.d/ypserv start,並用 setup 勾選 yppasswdd、ypserv。
  5. 建立 /etc/gshadow、/etc/netgroup(若不存在)。
  6. 設定 NIS domain name:/bin/nisdomainname chen(建議與現有 domain 不同以增強安全),成功後加入 /etc/rc.d/rc.local 並修改 /etc/sysconfig/network 設 NISDOMAIN=chen。
  7. 初始化 NIS:/usr/lib/yp/ypinit -m(記得用 Ctrl+D 結束,非 Ctrl+C)。若報缺檔案用 touch 建立。
  8. 重啟 ypserv、yppasswdd。

設定 NIS 用戶端

以 redhat62.siyongc.domain (192.168.0.22) 為例:

  1. 執行 netconf 選擇「Network Information System (NIS)」,設定 NIS domain(chen)與 NIS server(redhat52.siyongc.domain,需在 /etc/hosts 正確解析)。無 netconf 可手動修改 /etc/yp.conf、/etc/sysconfig/network。
  2. 執行 /bin/nisdomainname chen。
  3. 修改 /etc/yp.conf 加入 domain chen ypserver redhat52.siyongc.domain。
  4. 執行 setup 勾選 ypbind。
  5. 修改 /etc/passwd 末尾加入 +。
  6. 啟動 ypbind:ypbind 或 /etc/rc.d/init.d/ypbind restart。

測試 NIS

客戶端 root 登入後執行:

ypcat passwd  # 查看伺服器帳號列表
getent passwd netman  # 查詢特定帳號(netman 為伺服器帳號)

若回應如 netman:x:1001:1001::/home/netman:/bin/bash 即成功。否則需除錯。

執行 yppasswd netman 設定 NIS 密碼(輸入 root 密碼後設定 netman 密碼,建議與原密碼一致)。此步驟非必須,若能從其他機器用 NIS 帳號登入可略過。

在本地建立使用者家目錄:

mkdir /home/netman
chown netman:netman /home/netman

亦可設定開機透過 NFS 掛載原家目錄(修改 /etc/fstab),留待自行嘗試。若需本機郵件系統,請建立信箱:

touch /var/spool/mail/netman
chown netman:mail /var/spool/mail/netman
chmod 660 /var/spool/mail/netman
copyright © 萬盛學電腦網 all rights reserved