隨筆-144  評論-80  文章-1  trackbacks-0
          LINUX學習筆記—SAMBA使用篇
          2001-04-06· ·illiad··yesky

          1


            前言半個月前開始安裝、學習REDHAT LINUX7.0。作為一個Linux新手,不可避免的遇上了一些問題,通過翻閱書籍資料,查看BBS,自己的摸索實踐,也解決了一些問題。想到自己的經驗教訓可供他人借鑒,于是大膽寫出來,一來可以當作學習筆記保存,二來希望對剛剛接觸Linux的朋友有所幫助。由于本人能力所限,筆記中有所疏漏不足也在所難免,還請各位高手指正。

          一、SAMBA簡介

            NetBIOS 是一個為了便于開發基于局域網的資源共享應用程序而設計的API。之后,產生了基于NetBIOS的NetBEUI協議和NBT(NetBIOS OVER TCP/IP)協議。NBT協議進一步發展為SMB和CIFS協議。Windows的局域網默認采用的就是NetBEUI協議,而SAMBA軟件包所使用的就是CIFS協議,結果就是,裝有SAMBA軟件包的機器能夠和Windows網絡的機器進行通信,讓沒有NetBEUI協議的UNIX、LINUX機器在SAMBA的幫助下和Windows網絡共享資源。

          二、SAMBA的安裝

            RedHat Linux7.0的默認安裝模式下已經安裝好了SAMBA。可以用“rpm -q samba”命令查看系統是否安裝了SAMBA以及安裝版本。沒有的話,你可以從安裝光盤中找到SAMBA的rpm文件手動安裝。

          三、SAMBA的啟動

            使用“ps -aux|grep smb”查看SAMBA服務是否已經運行,默認是否。使用命令“/etc/init.d/smb start”啟動它;或是通過“linuxconf”把SAMBA設定為系統啟動時啟動。具體步驟,運行“linuxconf”,點擊“control service activity”,顯示的畫面如圖,點擊“sevice control”列表的“smb”,設置啟動為“automatic”,“run level”為“5”。



          四、訪問Windows客戶機

            smb啟動后,不用作任何設置你已經可以訪問運行Windows的機器了。現在有兩臺機器,分別運行著Linux和Windows98,主機名稱分別是redhat和lily。lily上有目錄“download”,有打印機“HP”,目錄設置為“完全訪問”,密碼是“abc”。

            1、訪問lily上的共享目錄。

            第一步,查看lily這臺機器的的共享資源,“smbclient -L //lily”,當提示時,輸入密碼后會列出lily上可用的資源。
            第二步,“mkdir /mnt/download”,在“/mnt”下建立一個目錄。
            第三步,“mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download”,把lily上的共享目錄掛接到redhat的“/mnt/download”下面。接下來,你可以象使用本地硬盤那樣訪問該共享目錄了。你也可以編輯“/etc/rc.d/rc.local”,把“mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download”添加到文件的末一行,這樣,系統一啟動,該共享目錄也就掛接好了。

            2、使用lily上的打印機。

            單擊任務欄上的Gnome圖標,單擊“system”,單擊“control panel”。在“control panel”窗口中,單擊打印機圖標,選擇“SMB/Window 95/98/NT Printer”,如圖。



            然后出現設置窗口,如圖。


          其中“Hostname of Printer Server”應該填上主機名,這里是“lily”;“Printer name”就是“smbclient -L //lily”顯示出來的打印機名稱,這里是“HP”;“input filter”是讓你選擇打印機型號的,如圖

            可以用類似的型號代替,比如“lily”上的打印機是HP deskjet1120c,這里就選擇550c/560c/6xxc。這三項是一定要設置的。然后可以測試一下打印機了。

          五、讓Windows的機器訪問Linux

            兩種方式:

            1、手工編輯“/etc/smb.conf”文件;
            2、使用圖形介面設置smb.conf。這里介紹后者。

            編輯“/etc/xinetd.d/swat”,改“disable=yes”為“disable=no”,“only_from=localhost”為“only_from=10.0.0.39”。說明:該IP地址是我機器的網卡地址,如果不改,用“localhost:901”不能登錄進SWAT管理介面。會提示你:“
          A network ettor occured while Netsape was receiving data.
          (Network Error:Broken Pipe)Try Connecting again.


            在瀏覽器中輸入“10.0.0.39:901”,進入SWAT,如圖


            第一步,設置“global”,其中只要更改“security”類型為“share”,“workgroup”是出現在網絡鄰居里的組名,“netbios name”是該組中本機的名稱,不設置則用主機名。如圖。



            第二步,設置“shares”,如圖


            先建立一個新的共享名稱,接著“choose share”旁邊的按鈕,選擇這個共享名稱。設定“path”為“/home/download”,“guest ok”為“yes”,“writable”為“yes”,最后不要忘了單擊“commit changes”接受新的設置內容,如圖。


            在lily上打開網絡鄰居可以看到有一個“mygroup”的組,里面有一臺“redhat”的電腦,共享目錄是“download”。

            至此,一個簡單的雙向共享建立起來了。當然,SAMBA的功能遠不至此,更復雜的功能,有興趣的朋友可以參看各種資料。

          參考以下:

          http://www.5ilinux.com/blog/archives/000007.html



          隨著Linux的普及和大眾化,Linux下的文件共享成為用戶關心的首要問題。其實幾乎所有的Linux發行套件都提供了一個很好的工具Samba,可以輕松實現文件共享。
          Samba是基于SMB協議的一個應用程序,目前的版本是2.3.x。Samba的功能很強大,但易用性也極差。究其原因是它的配置文件太大和不容易理解,新手和熟手都對其望而卻步。其實僅僅實現文件共享這一單純目的,配置Samba很簡單,只需熟悉幾個操作即可。下面我用一個例子說明這幾個操作。
          假設你已熟悉Linux的基本操作,例如VI編輯器的使用、基本的操作文件命令。
          現在我們有三臺PC,一臺安裝了window2000,名字是test2000,其上有共享文件夾share;其余兩臺安裝了Linux,一臺名字是testsamba,其上有一目錄/pub;另一臺名字是testlinux,其上也有一目錄/pub。我們要實現的目標是把testsamba上的/pub共享,供test2000和test_linux的使用。
          對test_samba我們進行下面操作:

          在/etc/下找到smb.conf,用VI編輯器打開,
          # vi /etc/smb.conf或vi /etc/samba/smb.conf
          在【gobal】字段下,添加netbios記錄,一般加在workgroup記錄的下一行;
          netbios name = testsamba
          在【gobal】字段下,修改secrity記錄;
          secrity = share
          在【public】字段下,修改path記錄;
          path = /pub
          在【public】字段下,添加geuest ok記錄;
          guest ok = yes
          刪除【public】字段每行行首的“;”標示;
          保存退出。
          簡單解釋一下,添加的netbios name是可以在test2000網絡鄰居中看得見的機器名;添加的/pub是可以在網絡鄰居中看見的共享目錄;添加guest ok是允許所有用戶都可以guest帳戶訪問共享;刪除“;”標示是要整個【public】字段成為可執行。
          現在/pub就成為可以被test2000和testlinux兩臺機器共享的目錄了。
          試試看:
          在testsamba下,為使用test2000下的共享文件夾可以進行以下操作:
          # smbclient –L //test2000
          此命令為查看test2000下的共享情況,注意在系統要求輸入password時,直接回車即可進入test2000,此時屏幕上列出test2000下的共享。
          #smbclient \\\\test2000\\share –U share (或smbmount //test2000/share /pub)
          此命令可進入test2000的share目錄,屏幕上出現MS-DOS的提示符:\時說明用戶進入了share目錄。此時可以在提示符后輸入“?”查找你可使用的命令。
          在test2000下,使用testsamba的共享目錄/pub,可以進行以下操作:
          查找計算機testsamba,當testsamba目標出現時,雙擊圖標pub,即進入共享文件夾pub了。
          在testlinux下,使用testsamba的共享目錄pub,可進行如下操作:(假設已知pub存在)
          #smbmount //testsamba/pub pub
          此命令可把testsamba下的pub掛到本機的pub上,同上在系統要求輸入password時,直接回車,接著依次輸入#cd /pub/pub、#ls,屏幕即列出testsamba的pub目錄下的文件了。
          Win2000和Linux實現文件共享了,簡單吧!



          Linux 系統中的Samba配置


          薛龍琴、王祖漢
          01-8-8 下午 01:09:04


          前言:
          為了實現windows 和 Linux以及其他操作系統之間的資源共享,軟件商推出nfs 和samba兩種解決方式。由于市場上缺乏象pc-nfs那樣的客戶端工具,使得Linux和windows的資源共享變得復雜。Samba的出現解決了這一問題,它以其簡潔、實用、靈活配置的特點受到越來越多人們的廣泛關注。
          Windows利用SMB協議來實現操作系統間文件和打印機共享,而Samba本身具備SMB協議,它實現局域網內和Windows系列計算機的資源共享。
          本文就Samba在Linux系統下的配置為重點,討論局域網內windows 與 Linux 的資源共享。
          一、Samba 介紹
          1、SMB協議
          SMB (Server Message Block,服務信息塊) 協議,是局域網上的共享文件/打印機的一種協議,它可以為網絡內部的其他windows和linux 機器提供文件系統、打印服務。SMB的工作原理是讓NetBIOS和SMB運行在TCP/IP之上,且使用NetBIOS的nameserver讓linux機器可以在windows 網絡鄰居里被瀏覽。
          2、Samba
          Samba是用來實現SMB的一種軟件,由澳大利亞的Andew Tridgell開發,是一種在Linux 環境里運行的自由軟件。它可以完成如下功能:
          文件服務和打印服務,實現Windows和Linux的資源共享。
          登錄服務器,可以作為局域網的服務器。
          作為主域控制器。
          WINS服務器。
          支持SSL。
          支持SWAT。
          二、 Samba服務
          1、 核心進程
          Samba 有兩個守護進程:smbd 和nmbd,它們是Samba的核心進程。nmbd進程使其他計算機瀏覽Linux服務器,Smbd進程在SMB服務請求到達時對它們進行處理,并且為使用或共享的資源進行協調。
          2、 啟動服務
          Samba 有兩種啟動方式:Daemon形式和Inetd形式。
          (1)Daemon形式 建立啟動腳本:rc.samba
          smbd -D -d1
          nmbd -D -d1
          -D 表示以Daemon形式執行;-d1 表示除錯記錄級別
          執行腳本文件rc.samba
          (2)Inetd形式
          設置文件:/etc/services
          netbios -ssn 139/ tcp
          netbios -ns 137/ udp
          設置文件:/etc/inetd.conf
          netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd
          netbios -ns dgram udp wait root /usr/sbin/nmbd nmbd
          重啟動Inetd daemon
          # kill -HUP 1
          3、 客戶工具 smbclient
          Smbclient命令用來存取遠程Samba服務器上的資源。其命令形式與ftp相似。
          命令語法是:#smbclient [password] [option]
          (1) 解釋:servicename是要連接的資源名稱,資源名稱的形式如下:
          //server/service server 是遠程服務器的NetBIOS名字,對于windows服務器而言,就是出現在網上鄰居中的名字。
          Service是各server所提供的資源的名字。
          pssword 是存取該資源所需的口令
          option 各種命令選項,其中 -L 用于列出遠程服務器提供的所有資源
          -I 指定遠程服務器的IP地址。此時,servicesname 中的NetBIOS名部分將被忽略。
          (2)多種smbclient命令:
          執行smbclient命令成功后,進入smbclient環境,出現提示符: smb:\>
          這里有許多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通過這些命令,我們可以訪問遠程主機的共享資源。
          4、 Samba系統裝載與卸載
          (1) 裝載其他主機的資源
          我們可以利用Samba提供的smbmount命令,裝載其他主機的共享資源。
          Smbmount的命令語法:# smbmount
          其中 servicename 是資源名,mount-point是安裝點。
          例如: # smbmount "\\server\tmp" -c ' mount /mnt'
          表示:把名字為“server”的計算機上的共享資源“tmp”的內容裝載到本地的 /mnt
          目錄下。
          (2) 卸載資源
          卸載一個已經裝載的SMB文件系統,使用smbunmount命令,同時指定要卸載的裝載點。 例如: # smbunmount / mnt
          三、Samba配置
          Samba組件的配置文件是 /etc/smb.conf ,該文件幾乎包含了Samba系統程序運行時所需的所有配置信息。
          1、 配置選項
          配置文件中有比較重要的幾個節:[gloabal]、[homes]、[printers],下面分別給與說明。
          (1)[gloabal]節 在全局參數中,參數的設置直接影響samba系統。
          NetBIOS name:設置主機名稱
          Workgroup:用來指定主機所在網絡上所屬的NT域名或者工作組名稱。格式是
          Workgroup= Nt Domain-Name or workgroup-name
          Server string:用來設置本機描述,缺省是 Samba Server
          Host Allow:它允許設置哪些領域的機器可以訪問它的Samba服務器
          Load printers:允許自動加載打印機列表,而不需要單獨設置每一臺打印機。
          Interface:配置Samba使用多個網絡界面。
          Domain controller: 僅當網絡中有一臺在安裝時設置為主域控制器時使用此選項。
          Security: 設置安全參數,定義安全模式。Samba 的安全模式有四種
          Share、 user、 server 、domain
          encrypt passwords 、smb passwd file:用于適用加密口令。
          下面是一段參數配置例子:
          [global]
          smb passwd file = /etc/smbpasswd
          remote announce = 172.18.158.234 172.18.153.55 172.18.153.255
          dns proxy = no
          security = user
          encrypt passwords = yes
          server string = Ftp Server
          workgroup = turing
          socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
          log file = /var/log/samba/log.%m
          load printers = yes
          guest account = dscan
          remote browse sync = 172.18.158.234 172.18.153.55 172.18.153.255
          printcap name = /etc/printcap
          max log size = 50
          hosts allow = 172.18.158. 172.18.153. 127.
          ... ...
          (2)[homes]節 所有使用者的home目錄
          當任何一個客戶訪問Samba服務器時,在網絡資源中都能出現自己的home目錄共享。其配置如下:
          [homes]
          comment = Hnnw Directories
          browseable = no
          writable = yes
          (3)用戶共享目錄
          用來指定某一特定用戶組或者用戶擁有訪問權限的目錄配置,下列參數配置僅有hnnw組的用戶有權訪問目錄/home/samba。
          [public]
          comment = Public Hnnw
          path = /home/samba
          public = yes
          writable = yes
          printable = no
          write list = @hnnw
          2、 用戶映射
          全局參數“username map”用來控制用戶映射,它允許管理員指定一個映射文件,該文件包含了在客戶機和服務器之間進行用戶映射的信息。
          如:username map= /etc/smbuser
          用戶映射經常在windows 和linux 主機間進行。 兩個系統擁有不同的用戶賬號,用戶映射的目的是將不同的用戶映射成為一個用戶,便于共享文件。
          下面是一個映射文件的例子:
          # Map Windows admin to root
          root=admin administrator
          ;Map the member of developer to studio
          studio = @developer
          等號左邊是單獨的Linux賬號,等號右邊是要映射的賬號列表。
          服務器逐行分析映射文件,如果提供的賬號和某行有右側列表中的賬號匹配,就把它
          替換為等號左邊的賬號。
          3、 使用加密口令
          新版本的windows 95以及windows98、winnt(sp3以上版本),在網絡傳輸中僅傳遞加密口令作為用戶認證的信息。這類客戶機和不支持加密口令并且以user安全級運行的Samba服務器通訊時,會出現故障。為了正常的通訊,samba服務器使用加密口令。下面討論如何在samba中使用加密口令。
          (1) 口令文件 /etc/smbpasswd
          為了使用加密口令,samba 需要一份口令文件(/etc/smbpasswd),并且該文件應該和Linux的口令文件(/etc/passwd)保持同步。下面是生成文件命令:
          # cat /etc/password | mksmbpasswd > /etc/smbpasswd
          smbpasswd 是需要的口令文件,其權限是0600,所有者是root
          smbpasswd和passwd文件的記錄對應,密碼部分不同。密碼有兩部分組成,每部分
          是32個"X",前部分用于和Lanman通訊,后部分和Windows NT通訊。
          Root用戶可以使用smbpasswd命令為每個用戶設定samba口令。
          (2) 修改配置文件 /etc/smb.conf
          要使Samba使用加密口令,需要在配置文件smb.conf中加入如下參數。
          Encrypt passwords=yes
          Smb passwd file= /etc/smbpasswd
          第一行通知samba使用加密口令,第二行給出口令文件的位置。
          (3) 重啟動samba 服務。
          修改完配置文件后,需要重新啟動samba服務,可用如下命令:
          # /usr/sbin/samba restart
          4、windows系統中的明碼口令使用
          Samba系統中使用明碼口令作為連接SMB的默認設置。當SMB服務器對協商協議做出響應時,響應信息包含了一位,以說明服務器是否支持詢問或者響應加密。隨著win95的網絡重定向更新程序的發布,Microsoft修改了默認值,這樣,windows客戶就不會向不支持加密的服務器發送明碼口令了。
          在這種情況下,有兩種解決辦法:
          (1)設置Samba服務器使用加密口令
          (2)讓windows客戶使用明碼口令
          這里選用第2種解決辦法,通過修改注冊表來實現。下面對win95/win98、winnt用戶分別給與說明。
          (1)win98/win95系統用戶
          在注冊表中加入下列注冊字,并重新啟動機器:
          [HKLM\System\CurrentCntrolSet\Services\VxD\VNETSUP]
          “EnablePlainTextPAssword”= dword:00000001
          (2)Winnt系統用戶
          修改注冊表,加入下列注冊表項,并重新啟動機器:
          [HKLM\System\CurrentCntrolSet\Services\Rdr\Parameters]
          “EnablePlainTextPAssword”= dword:00000001
          四、Samba應用
          1、 windows資源共享與使用
          (1)windows資源共享
          a. 使用TCP/IP協議作為網絡默認通訊協議
          b. 修改網絡配置,設置文件和打印機共享。
          c. 設置好計算機名和所屬工作組
          d.共享系統資源
          (2)在windows系統中使用Linux共享資源
          a. 登錄進入windows網絡
          b. 通過網上鄰居查看、使用共享資源。
          c. 命令行下工具使用共享資源
          使用命令行下的net.txt工具來查看、使用共享資源:
          net use 命令的語法: c:>net use X:\\servername\sharename
          在這里,X:是共享的驅動器盤符,\\servername\sharename是到共享的UNC的網絡路徑。
          例如: c:\>net use h:\\hey\myfile
          表示:將hey機器上的myfile共享資源映射為本地的h盤
          2、Linux資源共享與使用
          (1)將Linux 的資源共享
          通過編輯Samba配置文件,添加需要共享的Linux資源。同時可以設定訪問此資源的用戶群及其訪問權限。下面是一段例子,將本機的 /public/data 目錄共享,所有人都有讀寫權限。
          [data]
          comment = Public Data
          path = /public/data
          public = yes
          writable = yes
          printable = no
          (2)在Linux中使用共享資源
          可以使用smbclient命令,訪問所有的Samba資源。具體使用方法見前述。
          五、Samba應用程序
          smbclient :訪問所有共享資源
          smbstatus: 列出當前所有的samba連接狀態
          smbpasswd:修改samba用戶口令、增加samba用戶。
          Nmblookup:用于查詢主機的NetBIOS名,并將其映射為IP地址
          Testparam: 用于檢查配置文件中的參數設置是否正確
          Linux 系統中的Samba配置
          posted on 2005-03-17 23:43 小力力力 閱讀(1501) 評論(0)  編輯  收藏 所屬分類: LINUX
          主站蜘蛛池模板: 桐城市| 济源市| 泊头市| 河源市| 叙永县| 舒城县| 新绛县| 辽宁省| 泉州市| 江津市| 崇州市| 湘西| 抚顺县| 肥西县| 杭州市| 嘉祥县| 鄂伦春自治旗| 天全县| 山阳县| 临夏市| 理塘县| 嘉祥县| 隆化县| 兴义市| 横峰县| 澜沧| 县级市| 舞阳县| 宜兰市| 泸定县| 鹿泉市| 济源市| 镇宁| 岢岚县| 灵璧县| 辰溪县| 吴旗县| 乌海市| 侯马市| 南靖县| 五河县|