歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

Linux成為“文件服務器”


一、Samba簡介
  給Windows客戶提供文件服務是通過samba實現的,凡架設過MS Windows網絡的人都知道MS Windows網絡的核心是SMB/CIFS,而samba也是一套基於UNIX類系統、實現SMB/CIFS協議的軟件,作為UNIX的克隆,Linux也可以運行這套軟件。和NT相比較,samba的文件服務功能一點也不亞於NT,效率很高,借助Linux本身,可以實現用戶磁盤空間限制功能,NT到4.0版本還是無法實現這點,samba由samba小組(http;//samba.org)開發,更新速度很快,目前最高的版本是2.0.7版,是2000年4月25日發布的,每個更新版本在功能上都所增強,也修復了已知的BUG。本章所涉及到的技術內容以2.0.3版藍本。目前各種Linux發布大都包含這套軟件,如果你的Linux發布是Read Hat,則是以RPM形式提供,可以在安裝Linux的時候選擇這個軟件,也可以單獨安裝,以root身份。

  rpm -i samba-2.0.3-8.i386.rpm,就可以了。

  如果你的Linux發布沒有包含這個軟件,可以從ftp;//samba.org/pub/samba去下載。另外,您的Linux的核心要支持smbfs,一般各種發布已經把smbfs的支持包含進去,如果沒有包含的話,就要重新編譯核心,獲得smbfs支持,具體如何編譯核心請參閱相關文章。

  由於本章的內容是基於文件服務器, 重點介紹samba在文件服務器上的應用。目前samba還不能完全代替Windows NT,尤其是把samba設置成PDC,最好不要這樣做,NT PDC非常復雜,samba還只能實現其中一部分功能。希望未來的版本可以做到。

  這套軟件由一系列的組件構成,主要的組件有:

  smbd SMB服務器,給SMB客戶提供文件和打印服務;

  nmbd, Netbios 名稱服務器,提供Netbios名稱服務和浏覽支持,幫助SMB客戶定位服務器;

  smbclient, SMB客戶程序,用來存取SMB服務器上的共享資源;

  testprns 測試服務器上打印機訪問的程序;

  testparms 測試Samba配置文件的正確性的工具;

  smb.conf samba的配置文件;

  smbstatus 這個工具可以列出當前smbd服務器上的連接;

  make_smbcodepage 這個工具用來生成文件系統的代碼頁;

  smbpasswd 這個工具用來設定用戶密碼;

  swat samba的Web管理工具;

  

二、如何配置samba
  實際上,samba安裝完後,只要把/etc/smb.conf這個文件裡的workgroup=XXXXX這個參數該為您的工作組,啟動samba就可以運行了,但這根本不能符合我們的需要。samba的配置都是圍繞smb.conf來進行的,配置方式有很多種,如果熟練的話可以手工編輯這個文件,也可以通過linuxconf來配置,而且samba本身帶了一個基於web的管理工具swat,使用901端口,安裝完samba後,它會在您機器的/etc/services的尾部加上一條:

  swat 901/tcp #Add swat service used via inetd

  在inetd.conf裡填上:

  swat stream tcp nowait.400 root /usr/sbin/swat swat

  在浏覽器的地址欄裡鍵入 http://youhostname:901/ 就可以進入swat對samba進行管理。下面就介紹如何手工配置這個文件以達到讓samba成為一個符合需求的文件服務器。

  先看看一小段的smb.conf:

  # smb.conf example

  [global]

  workgroup = WORKGROUP

  server string = Samba Server

  hosts allow = 192.168.1. 192.168.2. 127.

  load printers = no

  printcap name = /etc/printcap

  guest account = guest

  log file = /usr/local/samba/var/log.%m

  max log size = 50

  security = user

  socket options = TCP_NODELAY

  [homes]

  comment = Home Directories

  browseable = yes

  writable = yes

  [printers]

  comment = All Printers

  path = /usr/spool/samba

  browseable = no

  guest ok = no

  writable = no

  printable = yes

  printer driver = Epson LQ-1600K

  [tmp]

  comment = Temporary file

  path = /tmp

  read only = no

  public = yes

  [public]

  comment = Public Zone

  path = /home/samba

  public = yes

  writable = yes

  1.段

  從上面的例子可以看出,smb.conf的格式和Windows裡的INI文件很像,含有多個段,每個段由段名開始,一直到下個段名,每個段名放在方括號中間。段裡的參數的格式是:名稱 = 值。

  文件裡的每個段名、參數以及注釋都只能占一行,換句話說就是一行裡只能寫一個段名或參數或注釋,如果一行寫不下或不想把一行寫的過長,可以在行尾用"\"來表示續行。段名和參數名不分大小寫。可以有注釋,注釋以;或#開始到該行結束。

  除了[global]段外,所有的段都可以看作是一個共享資源,段名是該共享資源的名字,而段裡的參數就是共享資源的屬性。[global], [homes] 和 [printers]這三個段是比較特殊的,將在後面說明。而下面的注意事項則是針對普通的段。

  一個共享資源段由要提供訪問的路徑和附加的訪問權限組成,可以是文件資源或打印資源。共享資源段可以給guest級的用戶服務,一般來說guest用戶是不需要密碼的,如果給guest提供服務,guest的權限是根據UNIX裡的guest帳戶來賦予。 如果共享資源段不是給guest提供服務的,則訪問這樣的段需要客戶的密碼。由於賦予用戶對共享資源段的訪問權限是基於該用戶在UNIX系統的對該資源的訪問權限,所以服務器是不能賦予超過UNIX系統賦予該用戶的權限的。

  例如:

  下面的共享資源段的例子定義了一個文件共享,用戶對路徑/home/abc有寫入的權限,共享資源段名是abc,也就是共享名。

  [abc]

  path = /home/abc

  writeable = true

  而這下面的段定義了一個打印共享,共享是只讀的,但可打印,就是說唯一允許的寫訪問就是打開、寫入和關閉脫機文件。

  [myprinter]

  path = /usr/spool/public

  read only = true

  printable = true

  guest ok = true

  特殊段:

  [global] 段

  在這個段的參數是全局有效的。

  [homes] 段

  當用戶請求一個共享時,服務器將在存在的共享資源段中去尋找,如果找到匹配的共享資源段,就使用這個共享資源段。如果找不到,就將請求的共享名看成是用戶的用戶名,並在本地的password文件裡找這個用戶,如果用戶名存在且用戶提供的密碼是正確的,則以這個home段克隆出一個共享提供給用戶。這個新的共享的名稱是用戶的用戶名,而不是home,如果home段裡沒有指定共享路徑,就把該用戶的宿主目錄(home directory)作為共享路徑。

  通常的共享資源段能指定的參數基本上都可以指定給[home]段。但一般情況下[home]段有如下配置就可以滿足普通的應用。

  [homes]

  writeable = yes

  注意,如果在[home]段裡加了guess access =ok, 所有的用戶都可以不要密碼就能訪問所有的宿主目錄!

  [printers] 段

  該段用於提供打印服務。

  如果定義了[printers]這個段,用戶就可以連接在printcap文件裡指定的打印機。當一個連接請求到來時,smbd去查看配置文件裡已有的段,如果和請求匹配就用那個段,如果找不到匹配的段,但[home]段存在,就用[home]段。否則請求的共享名就當作是個打印機共項名,然後去尋找適合的printcap文件,看看請求的共享名是不是個有效的打印共享名。如果匹配,那麼就克隆出一個新的打印機共享提供給客戶。

  注意,[printers]服務必須是printable,如果指定為其它,服務器將拒絕加載配置文件。

  通常指定的路徑應該任何人都有寫入權限。

  [printers]

  path = /usr/spool/public

  writeable = no

  guest ok = yes

  printable = yes

  printer driver = Epson LQ-1600K

  2.參數

  段裡可以指定的參數非常多,有些參數是全局段才可以用的,而有些參數是任何段都可以用的,先介紹一些基本參數,明白這些基本參數,基本上就可以一般性地應用samba了,如果要更精細地控制samba,可以繼續參考一些高級配置。另外,本章假設讀者對MS WINDOWS 網絡是熟悉的,不熟悉的可以參考相關資料。

  全局參數

  2.1 基本參數

  workgroup

  說明:這個參數用來指定samba所要加入的工作組,另外如果在設置了security=domain,則workgroup可以指定域名。例如:

  workgroup = wgp1

  指明工作組為wgp1

  netbios name

  說明:這個參數指定samba的netbios名,可以不設置,samba將會使用機器的DNS名的第一部分,如果你的機器的DNS名是host1.domain,就用host1 例如:

  netbios name = public

  指定NetBios名為public

  server string

  說明:這個參數指定在浏覽列表裡的機器描述,和MS WINDOWS 裡配置網絡時的描述是一樣的。可以是任何字符串。也可以不填,samba會用缺省的 samba %v,即samba 尾隨它的版本號,不過如果要模仿NT象一點的話,可以填一下。例如:

  server string = Master File Server

  2.2 安全參數

  security

  說明:這是個重要的安全配置參數,有4個值,分別是share、user、server和domain,定義了samba的基本安全級,通常是 user

  security = user

  這是samba的默認配置,這種情況下要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進行驗證。

  securtiy = share

  這是幾乎沒有安全性的級別,任何用戶都可以不要用戶名和口令訪問服務器上的資源。

  security = server

  和user安全級類似,但用戶名和密碼是遞交到另外一個SMB服務器去驗證,比如遞交給一台NT服務器。如果遞交失敗,就退到user安全級,從用戶端看來,server和user這兩個級別是沒什麼分別的。

  security = domain

  這種安全級別要求網絡上存在一台NT PDC,samba把用戶名和密碼遞交給NT PDC去驗證。

  從用戶端看來,user級以上的安全級其實是沒什麼分別的,只是服務器驗證的方式不同,但這三種安全級都要求用戶在本Linux機器上也要系統帳戶。否則是不能訪問的。

  encrypt passwords

  說明:是否對密碼進行加密,samba本身可以維護一個密碼文件/etc/smbpasswd,如果不對密碼進行加密則在驗證會話期間客戶機和服務器之間傳遞的是明文密碼,samba直接把這個密碼和Linux裡的/etc/passwd密碼文件進行驗證。這其中有些問題,之一就是在Windows 95 OS/R2以後的版本和Windows NT SP3以後的版本缺省都不傳送明文密碼,要讓這些系統能傳送明文密碼必須在其注冊表裡更改。對於Windows 95 OS/R2以上的版本,可以在[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]裡加一個十六進制值

  EnablePlainTextPassword=00000001。對於WINDOWS NT SP3 以上的版本,可以在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]裡加一個十六進制值EnablePlainTextPassword=00000001,這樣就可以讓它們能在網絡上傳送明文密碼。

  另外,還有一件很煩人的事情就是NT系統,如果一個服務器是處於用戶級別上的安全模式,又不支持密碼加密傳送的話,NT將拒絕和服務器連接,除非服務器向用戶提示要密碼。這在實際應用中會出現什麼情況呢。如果你在NT機器有個帳戶user1,在Linux機器上也有個帳戶user1,密碼都是一樣,但你去和Linux機器上的共享連接的時候,NT就會提示你錯誤的密碼或未知的用戶名,要求你再次輸入用戶名和密碼,NT才和服務器連接。如果你映射了Linux上的共享資源作為NT的一個網絡驅動器,那麼NT在下次啟動試圖重新連接這個網絡驅動器時,又會提示你錯誤密碼或未知用戶名.... 煩得很。所以一般samba的應用基本都設定為yes:encrypt passwords = yes。

  當然,samba的用戶是基於Linux系統用戶的,sambad的加密工具是smbpasswd,最簡單的用法是smbpasswd -a username 這裡的username必須是/etc/passwd裡存在的用戶名,然後會提示輸入密碼和確認密碼,會生成一個新的密碼條目,放在/etc/smbpasswd這文件裡。另外,samba提供了一個工具—mksmbpasswd.sh,這是shell腳本,可以從/etc/passwd文件裡生成smbpasswd文件,用法是:cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd 。把passwd裡的用戶都加到smbpasswd裡。從安全起見,smbpasswd這個文件的存取權限請設為600。 

  username map

  說明:這個參數可以讓你指定一個文件包含來自客戶機的用戶名與Linux系統用戶名之間的映射,文件的格式是每行一個映射,映射的格式是:Linux usename = client username ... 。

  例如 root = admin adminstrator

  這樣,當客戶機的用戶是admin或administrator時,就被轉換成root。

  這個功能對用戶管理很方便,可以讓管理員不需要對客戶或服務器上的用戶帳號大動干戈。

  文件名通常用默認的/et/smbusers

  password level

  說明:這是針對一些SMB客戶像Windows for Workgroup、OS/2之類而設的,像WFW這樣的系統在發送用戶密碼的時候,會把密碼轉換成大寫再發送,這樣就和samba的密碼不一致,這個參數可以設定密碼裡允許的大寫字母個數,這樣samba就根據這個數目對接收到的密碼進行大小寫重組,以重組過的密碼嘗試驗證密碼的正確性。這個值越大,組合的次數就越多,驗證時間就越長,安全性也越低!

  例如: 如果這個值是2,用戶的密碼是abcd,但發送出去其實是ABCD,samba就會把這個ABCD進行大小寫重組,組合的密碼可以是下列:Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。

  所以如果沒有必要,就把這個值定為是零(一般應該是沒這必要,現在誰還用WFW這樣的系統)。這樣的話samba只嘗試兩次,一個是接收到的密碼,另一個嘗試的是這個密碼都是小寫的情況。即使是這樣,也還存在著一定的安全性問題。

  guest account

  說明:這個參數指定guest級帳戶的用戶名,可以是nobody、ftp,guest級別的用戶可以不要密碼就訪問給定的guest服務。

  host allow

  說明:這個參數指定那些機器可以訪問samba,例如:host allow = 192.168.1. 127.

  指定192.168.1.0裡的所有機器都可以訪問。

  如果不允許子網裡的一台機器訪問,可以這樣設:host allow = 192.168.1. EXCEPT 192.168.1.33

  禁止192.168.1.33訪問

  host deny

  說明:和host allow 相反是指定那些機器不能訪問,格式一樣。

  2.3 日志記錄參數

  log file

  說明:這個參數指定日志文件的名稱,路徑一般放在/var/log/samba,可以在文件名後加個宏%m表示對每台訪問samba的機器都單獨記錄一個日志文件。

  例如: log file = /var/log/samba/log.%m,

  如果host1、host2這台機器訪問過samba,就會留下log.host1、log.host2這兩個日志文件。

  max log size

  說明:這個參數指定最大日志文件的大小,以KB為單位。

  例如: max log size = 50k

  2.4 協議參數

  announce version

  說明:指定服務器的宣告版本號,默認是4.2,如果在WINDOWS的網上鄰居裡查看samba服務器的屬性,就可以看見在類型一行裡有 Windows NT 4.2 Server 的字樣。一般不要去更改它,如果你要讓samba模擬NT像一點的話,可以改成4.0。

  2.5 計算機浏覽參數

  os level

  說明:os level 的值是個整數,決定了nmbd是否有機會成為本地廣播區域的工作組裡的本地主浏覽器,默認值是零,零則意味著nmbd失去浏覽選擇。如果要nmbd更有機會成為本地主浏覽器的話,可以設為65。

  preferred master

  說明:這個參數指定nmbd是否是工作組裡的首要的主浏覽器,如果指定為yes,nmbd在啟動的時候就強制一個浏覽選擇。指定該參數為yes時最好把domain master 也指定為yes。用這個參數的時候要注意的是在samba服務器所在的子網上如果有其它的機器(不管是WINDOWS NT還是另一個samba服務器)也指定為首要的主浏覽器時,這些機器都會因為爭奪主浏覽器而在網絡上廣播,引起不必要的網絡性能下降。

  local master

  說明:這個參數指定nmbd是否試圖成為本地主浏覽器,默認值是yes,如果設為no則samba服務器就永遠都不會成為本地主浏覽器。但即使設置了yes,也不等於samba服務器就會成為本地主浏覽器。只是參與本地主浏覽器選擇。

  domain master

  說明:這個參數讓nmbd成為一個域浏覽器,取得各本地主浏覽器的浏覽列表,並將整個域的浏覽列表遞交給各本地主浏覽器。默認值是no。如果網絡上已經有一台NT PDC,就不要把這個參數設為yes,爭不過NT PDC的。

  另外,如果你對計算機浏覽服務不是很清楚的話,可以參考NT網絡管理資料。

  2.6 共享資源設置參數

  comment

  說明:就是對共享的描述,可以是任意的字符串

  例如:comment = Share Stuff 。

  path

  說明: path是提供共享服務的路徑,可以用%u %m這樣的宏來代替路徑裡的unix用戶和客戶機的Netbios名。

  例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/ 下為每個Linux用戶以他的用戶名建個目錄,作為他的共享目錄,這樣path就可以寫成:path = /home/share/%u; 。

  用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網絡路徑。同樣,如果我們不是以用戶來劃分目錄,而是以客戶機來劃分目錄,為網絡上每台可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,可以這樣寫path:path = /home/share/%m 。

  writeable

  說明:指定共享路徑是否可以寫,值是yes或no

  browseable

  說明:指定共享是否可以浏覽,默認是yes

  available

  說明:指定共享資源是否可用,默認是yes,設為no則關閉該資源的共享服務,用戶無法連接到該資源上。

  exec 和 postexec

  root preexec 和 root postexec

  說明:指定在用戶與共享資源在連接和斷開時在服務器上執行一個命令,這兩對參數很有用,區別是root preexec 和root preexec 是以root的權限運行。比如在服務器把cdrom作為共享,但cdrom是不能一直處於裝配狀態的。我們可以這樣設置

  [cdrom]

  comment = Server Cdrom

  path = /mnt/cdrom

  public = yes

  browseable = yes

  root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom

  root postexec = /bin/umount /mnt/cdrom

  public

  說明:這個參數指明是否允許guest帳戶訪問,值為yes或no,另一個和public相同意義的參數是guest ok。

  打印共享還有些專用的打印參數,闡述如下:

  load printers

  指定在samba啟動時是否自動把printcap文件裡的所有打印機加載,從而可以在浏覽清單裡看到所有的打印機,默認是yes

  printable

  指定用戶能不能打印,默認是no,要讓一個打印共享可以讓用戶使用,必須設為yes

  print name

  打印機名

  printer driver

  打印機的驅動類型,這個參數可以讓WINDOWS知道遠程打印機上的類型,具體的值可以參考在WINDOWS裡安裝打印機出現選擇打印機類型時的打印機類型。比如Espon LQ1600K打印機:

  printer driver = Espon LQ-1600K

  以上就是samba的一些常用的配置,通過這些配置參數,我們已經可以建立起一個一般應用的文件服務器。雖然還有很多參數沒有提到,但samba本身可以用缺省值。

  啟動samba,可以用/usr/sbin/samba start來啟動samba,也可以用ntsysv來啟動。

  

三、samba 進階
  下列所介紹的是一些高級參數的配置,這些參數如果應用得當,可以更加靈活地在網絡上應用samba

  1.宏

  在基本配置裡有提到一些參數的可以尾隨%u、%m,這是samba裡定義的宏,宏用百分號後面跟一字符表示,在具體運作的時候就用實際的參數來代替。常用的宏有

  %S = 當前服務名

  %P = 當前服務的根路徑

  %u = 當前服務的用戶名

  %g = 給定%u的所在的主工作組名

  %H = 給定的%u的宿主目錄

  %v = Samba 版本號

  %h = 運行Samba的機器的主機名

  %m = 客戶機的NETBIOS名

  %L = 服務器的 NetBIOS 名

  %T = 當前的日期和時間

  靈活地應用宏可以很方便地管理比較復雜的網絡。

  2.一些常用高級配置參數

  2.1 全局參數

  config file

  說明:這個參數是全局參數,可以讓你用另一個配置文件覆蓋缺省的配置文件,如果文件不存在,該項無效。這個參數非常有用,也使得samba的配置更靈活,讓一台Linux服務器模擬多台不同配置的NT 服務器,滿足不同的需求。

  比如,您想讓網絡上的某台名字是host1的機器用它自己的配置文件,先在/etc/下為host1配置一個名為smb.conf.host1的文件,在缺省的smb.conf裡加這行:

  config file = /etc/smb.conf.%m

  這樣,當host1請求連接的時候,smb.conf.%m被替換成smb.conf.host1,對host1來說,它所看到的samba就是由smb.conf.host1定義的。而其它機器還是用smb.conf。

  deadtime

  說明:這個參數值是個整數,單位是分鐘,用於切斷一個不活動的連接。當一個沒有打開任何文件的連接的不活動的時間超過datetime指定的的時間後,samba就自動切斷這個連接。這個參數可以節省服務器的資源消耗,尤其是在有大量連接的情況下。默認的值是零,零代表samba不自動切斷任何連接。

  time server

  說明:這個參數讓nmbd成為WINDOS客戶的時間服務器。默認是no。

  2.2 共享資源參數

  admin users

  這個參數用來賦予用戶對共享資源的管理員權限,意味著這些用戶可以root一樣進行所有的文件操作,當然只局限在這個共享資源上。這個選項要慎用,因為任何這樣的用戶可以對該共享上的文件隨意進行操作。缺省是admin users = no。

  例如:

  admin users = Su_27

  那麼Su_27這個用戶就是這個共享資源的管理員。

  valid users

  說明:指定共享資源的有效用戶,即允許訪問該資源的用戶。

  例如:valid users = user1, user2

  那麼user1和user2是有效用戶

  invalid users

  說明:和valid users 相反,指定那些用戶不可訪問這共享資源。

  max connections (S)

  說明:指定一個服務的最大連接數目,用戶連接到該服務時如這個服務的連接數目已經達到指定值,這個新的連接請求將被拒絕。

  例如: max connections = 100

  最大連接數為100

  以上是一些samba的高級配置參數,但samba的參數還有很多,本章不能一一詳述,如文件創建權限設定,代碼頁,文件名大小寫是否敏感等,可以參考samba的文檔。

   

四、什麼是NFS
  NFS 是網絡文件系統(Network File System)的簡稱,是分布式計算系統的一個組成部分,實現在異種網絡上共享和裝配遠程文件系統,從用戶角度看來,在這些遠程的文件系統操作和本地的文件系統上操作並沒有什麼不同。NFS由Sun 微系統公司(Sun Microsystem, Inc)開發,制訂了NFS 標准,並被IETF接受,納入RFC,作為文件服務的一種標准(RFC1904,RFC1813)。NFS基於客戶/服務器結構,通過RPC(遠過程調用)實現,所有的NFS操作都由RPC過程來進行。NFS 服務器導出本地的目錄給遠程的NFS客戶,NFS客戶把對文件操作系統調用重定向到遠程的系統。在Linux裡,通常用knfsd來實現NFS服務,這是個運行在核心空間的後台守護程序,相對與用戶空間的NFS程序,有較高的響應性能。

  

五、配置NFS
  1.創建或修改/etc/exports

  exports 的每一行由導出路徑, 客戶名列表以及每個客戶名後尾隨的訪問選項構成, 訪問選項是可選的.

  directory hostname(options) ...

  options是可選的,如果不指定options,nfs將采用默認的選項。hostname也可以為空,代表給任意外來主機提供服務。

  例如:

  /usr ws1.mydomain.com

  導出路徑/usr 提供給 ws1.mydomain.com 訪問

  /usr ws1.mydomain.com(rw)

  同樣是給ws1.mydomain.com訪問,但具有寫入權限。

  /pub (ro,insecure,all_squash)

  導出/pub, 任何機器都可以訪問, 允許用大於1024的端口進行連接, 並把所有的連接id映射到nobody.

  主機名裡可以包含通配符*和?,例如 *.mydomain.com,代表mydomain.com裡的所有機器,但注意通配符不能匹配主機名裡的點,所以上面的*.domain.com不包括ws1.subdomain.mydomain.com這樣的機器。也可以用IP網絡/子網掩碼的形式來指定網絡上的可以訪問的機器。例如: 192.168.1.0/255.255.255.0

  修改過/etc/exports後,需要告訴nfs進程重新檢查配置信息,可以用命令:exportfs或重新啟動nfs

  一些常用選項

  insecure 允許用戶可以從大於1024的端口進行連接

  secure 限制用戶只能從小於1024的端口號進行連接

  ro 只讀,注意在沒指定ro的情況是可寫的。

  noaccess 讓導出路徑的所有子目錄對客戶不可見。用戶連接到這樣的路徑後看到的是個空目錄。

  root_squash 這個選項可以把從客戶機的uid為0的請求映射成nobody

  no_root_squash 這個選項和上面的相反,不映射uid 為0的請求,這是缺省的。

  rw 可寫,這是缺省的。

  2.一個exports的例子

  /home ws1(rw) ws2(rw) ws3(rw)

  /usr/X11R6 ws1(rw) ws2(rw) ws3(rw)

  /usr/share ws1(rw) ws2(rw) ws3(rw)

  / ws1(rw,no_root_squash)

  /home/ftp (ro)

  /pub (ro)

  /pub/private (ro,noaccess)

  3.啟動NFS服務

  啟動NFS服務可以用如下命令

  /etc/rc.d/init.d/nfs start

  在修改exports文件後要告訴nfs配置信息變化,可以:

  /etc/rc.d/init.d/nfs stop

  /etc/rc.d/init.d/nfs start

  4.如何裝配遠程NFS文件系統

  如上例,裝配上述的/pub可以簡單用如下命令:

  mount hostname:/pub /mnt

  其中hostname是遠程主機的主機名。

  查詢遠程機器上有導出文件系統的情況,可以用showmount -e hostname 。


摘自:http://linuxaid.com.cn


Copyright © Linux教程網 All Rights Reserved