歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 架設Samba服務器,用User共享方式?

架設Samba服務器,用User共享方式?

日期:2017/3/6 15:49:07   编辑:關於Unix
一點理論: 在Windows 中,我們都知道網絡 鄰居,是Windows 共享資源的方式。Linux寫Windows 互訪與共享資源的方式是利用Samba服務,其實我覺得它更象一個軟件。Windows 與Linux通過Samba,可以相互共享資源,是互為服務器和客戶端的關系。比如當裝有Windows
  一點理論:
  在Windows中,我們都知道網絡鄰居,是Windows共享資源的方式。Linux寫Windows互訪與共享資源的方式是利用Samba服務,其實我覺得它更象一個軟件。Windows與Linux通過Samba,可以相互共享資源,是互為服務器和客戶端的關系。比如當裝有Windows操作系統的機器,向裝有Linux系統的機器存取文件,那Windows應該是客戶機,而Linux則是服務器;如果Linux的機器向Windows訪問和存限文件及使用Windows提供的打印服務,這時應該說Windows是服務器,而Linux是客戶機。
  
  注意的事項:
  1。如果在windows下不能加入linux的共享,可能出現在帳戶上,要在linux和window的機器上都要建一個相同的用戶,密碼也要一樣。否則不能訪問。
  
  2。如果在windows的網絡鄰居中,有時可能不會發現linux的共享。我們要自己在添加網絡鄰居中加上。要以\\linux的samba的主機名也就是netbios name中定義的\共享名。這樣說可能新手弟兄不太懂。我說的也不太專業。呵。。。請仔細看本帖中的\\linsir01\win02類似的,還有\\linsir01\share;\\linsir01\win03之類的。
  
  3。要在windows加上相關的協議;添加網絡協議,把IPX/SPX以及NETBEUI兩個協議加入。
  
  操作環境:三台機器,兩台win2000;一台是RH80.
  
  一、查看是否Samba在系統中被安裝了;這也是安裝其它軟件的操作步驟:注:以root登入,或者以root權限執行;
  
  #rpm -qa | grep samba
  
  samba-2.2.5-10
  samba-swat-2.2.5-10
  samba-common-2.2.5-10
  samba-client-2.2.5-10
  
  如果沒有出現上面的三個安裝包,我們就要在盤中把這些包找出來安裝上;把光盤中凡是帶有samba的都找出來,放到linux的一個臨時的文件夾中。比如我們臨時放到/tmp目錄裡。
  然後執行:
  #rpm -ivh samba*.rpm --nodeps --force
  
  二、然後我們判斷一下,是否samba服務已經啟動,如果沒有,我們就得打開。
  
  一般說來,在系統默認的情況下,samba是不會啟動的。但我們也應該懂得如何查看此服務是否啟動了,這也是我們的一個操作的流程吧。使用查看進程命令:
  
  #ps -aux | grep smb
  
  在這裡,我們要說明一點,為什麼我們不用#ps -aux | grep samba命令呢,在下文可能就明白了,現在能記住就好了。不為什麼,因為系統的服務就是smb,而非samba,samba只是一個名字而已。
  
  如果用查看進程的命令,出現了第二行的樣子。就是已經把samba服務打開了,如果沒有出現,就是沒有打開。
  
  #ps -aux | grep smb
  root 1719 0.0 0.3 4916 1820 ? S 08:21 0:00 smbd -D
  root 1849 0.0 0.1 4776 628 pts/1 S 08:48 0:00 grep smb
  
  三、打開samba服務;
  
  如果我們沒有打開samba服務,我們應該用以下兩種方法來打開,系統服務,一般打開方式都是如此。
  
  1.用setup命令來打開,在#setup執行下去的時候,有個System serverices,然後移動鍵盤的上下鍵來選定[System serverices]項,然後把smb和swa兩項前面加個*號,表示已經選中了,意思就是自動啟動這兩個服務。或者用更直接的辦法用命令進入[System serverices]的選擇框中。
  以上解釋中用到的兩個命令是:
  #setup
  或
  #ntsysv
  
  以這種方式,只是打開,但如果不重新啟動,samba的服務也不能運行,我們還要用命令來執行,讓機器不重新啟動的情況下把samba服務執行起來,一般的情況下,我們要操作的samba的命令都在/etc/rc.d/init.d/目錄裡,要用下面的方式來運行。
  
  # /etc/rc.d/init.d/smb start
  用了上面的命令,如果能看到下面的提示,就證明已經把samba啟動了。
  
  啟動 SMB 服務: [ 確定 ]
  啟動 NMB 服務: [ 確定 ]
  
  當然也可以用下面的方式,只是多了一步,不過進入/etc/rc.d/init.d/目錄看一下也好,看裡面都有什麼,凡是我等菜鳥,也不能不看一下。
  
  #cd /etc/rc.d/init.d/
  
  然後再執行
  #./smb start
  
  然後了,那如何把samba的服務停下來呢?那就stop;如何重啟samba服務器,那就restart了
  
  如果是在/etc/rc.d/init.d目錄中,我們就要執行
  #./smb stop
  #./smb restart
  
  如果不在/etc/rc.d/init.d目錄中,我們就要這樣執行,上面已經有說過了。
  
  # /etc/rc.d/init.d/smb stop
  # /etc/rc.d/init.d/smb restart
  
  2.運行如下的命令也有在X下打開
  
  #redhat-config-services
  
  然後也是選中smb和swat,然後保存一下。這個比較簡單。如果您在smb這項,選中後,然後就點一下開始。這樣就把smb服務打開了。
  
  把服務打開了也啟動起來了,我們還是要用查看進程命令來查看一下,samba服務是否在運行了。
  
  #ps -aux | grep smb
  
  如果還是沒有下面這行,我覺得不太可能了。呵。。。。。
  
  root 1719 0.0 0.3 4916 1820 ? S 08:21 0:00 smbd -D
  
  設置samba的配置文件
  1.圖形化的配置工具swat;
  
  打開mozilla,或者konqueror以及gnome下的文件管理器,總之無論如何打開文件管理器就行了。在地址欄中輸入
  127.0.0.1:901就會出現一個提示框[[email protected]:901]
  
  在用戶名下輸入root用戶名和密碼就能進入圖形置置界面了,這個比較簡單。
  
  1]點一下[Global]那項,就出來一個讓我們設置的選項。我們只要簡單的設置一下這些就行了,如果您對samba不太了解,建議不要改其它的東西。如果您按我在前面說的做,把smb.conf
  文件有備份,那您改就改吧。。哈。。錯了也沒有什麼,我們再恢復一下就OK了。。
  
  Base Options
  
  client code page 936 這樣就能顯示簡體中文了用戶組名。
  
  [workgroup]這一項,就是在網絡鄰居中[Windows的稱呼]中的工作組的名稱,這一項我用的是MSHOME,因為我把其它的兩台電腦也設置在了這個工作組。
  
  [netbios name]這是出現在網絡鄰居中的主機名,我設置的linsir01,采用默認也行。出現的是Linux真正的主機名。
  
  [security],設置為user
  
  [encrypt passwords]設置為yes
  
  2]點一下[shares],也看一下吧。這個也是比較重要的,我還是主要說幾點要注意的。其實我們在局域網中用到的都比較簡單的功能。簡單的設置一下就行了。
  
  點一下[choose share],有一個是[homes]的選項吧。點一下。。。然後。。。。看過來。。看一下和下面的差不多就行,其實不用改什麼,了解一下就行。。
  
  comment 這個選項可以不寫
  
  path 也可以不寫
  
  guest aclearcase/" target="_blank" >ccount nobody 默認就行。
  
  valid users %S
  
  read only Yes
  
  guest ok No
  
  3]creat share 這一項就是要我們創建共享目錄以及個人目錄的,可能有的弟兄有點不解,為什麼這樣說呢??一步一步的來。。。。。
  
  A。我們創建一個win02,在[ceate share]那個按鈕的邊上,有個空格。呵。。。可能您知道了吧,寫個win02,然後按一下[create share]
  
  comment win02
  
  path /home/win02
  
  username win02
  
  guest accoun nobody
  
  valid users win02
  
  read only No
  
  guest ok No
  
  browseable Yes
  
  available Yes
  
  B。以相同的辦法創建win03,目錄也為/home/win03
  
  C。然後我們再創建一個所有用戶都能看共享的目錄,也就是說,所有的用戶都能寫入,讀取,執行。我就是把這個目錄用來做windows機器軟件安裝的基地了。哈。。。
  
  我們還是按照上面步驟A的樣子,在[create share]上輸入share, 對於名字來說,我們還是不要用太長的,否則測試通不過,可能是最多只有8個字節,所以我就用最簡單的了。點到為止。
  
  comment win and linux share
  
  path /share
  
  guest accoun nobody
  
  read only No
  
  guest ok Yes
  
  browseable Yes
  
  available Yes
  
  這樣就行了。。。
  
  關於打印方面的,以linux的機器上的打印機,還是大家一起來研究吧。我安裝成功了,可是windows打印東西,總是出亂碼。所以在這裡我就不說如何設置了。我成功了,再補充。
  
  4]測試配制文件是否正確
  
  [root@linuxsir01 root]# testparm
  Load smb config files from /etc/samba/smb.conf
  Processing section "[homes]"
  Processing section "[printers]"
  Processing section "[share]"
  Processing section "[win03]"
  Processing section "[win02]"
  Loaded services file OK.
  Press enter to see a dump of your service definitions
  
  如果出現上面樣子的,就差不多了,如果有警告之類的,可能問題出現在[share]那一步中,可能名字太長了,不要超過8個字節。否則通不過
  
  5]重新啟動smb
  
  [root@linuxsir01 root]# /etc/rc.d/init.d/smb restart
  關閉 SMB 服務: [ 確定 ]
  關閉 NMB 服務: [ 確定 ]
  啟動 SMB 服務: [ 確定 ]
  啟動 NMB 服務: [ 確定 ]
  
  如果不成功,再試一下,或者找一下配制文件方面的問題。
  
  四。創建議系統的用戶和密碼,以及smb的密碼
  1.創建系統用戶
  
  [root@linuxsir01 root]# useradd win02
  
  [root@linuxsir01 root]# useradd win03
  
  2.創建系統用戶的密碼
  
  [root@linuxsir01 root]# userpasswd win02
  
  然後就是輸入密碼了。。。這個應該簡單,沒有什麼難度才對。比如我們用oTimsinm
  
  [root@linuxsir01 root]# userpasswd win03
  
  這個也是一樣的。。
  
  創建win02的win03的用戶名在smb的密碼
  
  1]生成密碼文件
  
  [root@linuxsir01 root]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
  
  2]更改密碼文件,我們要把除了win02與win03以外的用戶全都刪除。只留win02和win03兩行。
  
  3]創建win02的win03用戶的smb密碼,密碼要與創建系統用戶名的密碼一樣。比如我們上面說的oTimsinm。
  [root@linuxsir01 root]# smbpasswd win02
  New SMB password:在這裡輸入oTimsinm
  
  我們用同樣的方法創建win03的smb密碼。
  
  以下的工作就差windows機器的設置了,這也比較簡單。
  
  4]我們改變一下/share目錄的權限。讓所有的用戶都可以讀寫和執行
  
  [root@linuxsir01 root]# chmod 777 /share
  
  當然這是不安全的作法,如果想限制一下權限,您可以試一下,就明白了。。。
  
  windows機器的設置
  1]創建windows下的用戶和密碼。
  
  因為我們在[Global]中設置的是user共享方式 ,也就是說,要用windows用戶名來驗證。說明白一點就是windows的必須設置一個與linux機器上完全相同的用戶,密碼也必須一致。
  
  這種方式就是samba密碼服務驗證,我們在前面已經為win02和win03在linux的服務器上創建了系統用戶名和密碼,也創建了smb的密碼。所以我們在這步中也要在windows機器上創建win02和win03兩個用戶。我這樣說,也不知道能不能說明白,工作組,我們也用MSHOME吧。
  
  在windows機器上創建win02和win03兩個用戶。如果有兩台機器windows機器,那就太好了,一台一個。呵。。。。密碼還和在linux機器上的win02與win03一樣。
  
  切記,否則通不過驗證。計算機其實很聽話,一步一步的來就OK了。
  s
  2]在windows的機器上,添加網絡協議,把IPX/SPX以及NETBEUI兩個協議加入。這個應該更簡單。。。
  
  3。把windows機器上的磁盤或者文件夾共享。這也比較簡單。
  
  在linux的機器上操作下面的命令,查看一下每台機器的
  1.咱們先查看一下linux服務器的smb的情況。最好用IP來查看。。。。
  
  [root@linuxsir01 root]# smbclient -L 192.168.0.1
  added interface ip=192.168.0.1 bcast=192.168.0.255 nmask=255.255.255.0
  added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
  Password:在這裡,我們按兩下回車就行了。。不要添什麼密碼。
  Anonymous login successful
  Domain=[MSHOME] OS=[Unix] Server=[Samba 2.2.5]
  
  Sharename Type Comment
  --------- ---- -------
  homes Disk Home Directories
  share Disk win linux share
  epsonc40 Printer
  win03 Disk
  win02 Disk win02 home
  IPC$ IPC IPC Service (Samba Server)
  ADMIN$ Disk IPC Service (Samba Server)
  
  Server Comment
  --------- -------
  LINSIR01 Samba Server
  LINUXSIR02
  
  Workgroup Master
  --------- -------
  MSHOME LINSIR01
  
  如果在linux的機器上看到最下面一行,可能就有點不對了。因為共享中沒有我們在[Global]中設置的LINSIR01,所以共享一般不會成功。
  
  下面這個我是查看一台windows的機器情況;
  
  [root@linuxsir01 root]# smbclient -L 192.168.0.8
  
  added interface ip=192.168.0.1 bcast=192.168.0.255 nmask=255.255.255.0
  added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
  session request to 192.168.0.8 failed (Called name not present)
  session request to 192 failed (Called name not present)
  Password:
  Anonymous login successful
  Domain=[MSHOME] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
  
  Sharename Type Comment
  --------- ---- -------
  Error returning browse list: NT_STATUS_ACCESS_DENIED
  
  Server Comment
  --------- -------
  LINUXSIR02
  LINUXSIR03
  
  Workgroup Master
  --------- -------
  MSHOME LINUXSIR03
  
  具體說明的是什麼,如果您不理解,請查看man或者其它資料。以後我在此文件中慢慢的補充吧。。
  
  2.我們在windows的網絡鄰居上。添加網絡鄰居。前提是要以win02用戶在windows機器上登入。然後。。。。
  
  在網絡鄰居的位置中輸入\\linsir01\win02。這樣就行了。。。
  
  win03呢。也是一樣的。。。也必須在windows機器上以win03登入。
  
  輸入用戶名和密碼就行了,下次,我們再登錄查看時,就不再需要輸入用戶名和密碼了,這是在win2000裡的;如果在win98中,因為系統只是提示密碼。如果用戶名和密碼和linux上機器的win02或者win03的用戶對不上,就沒有辦法登入。當然windows 98的用戶win02想查看linux機器win02的文件夾的內容,在windows下必須以win02登入。
  
  訪問linux的share文件夾呢,我們也一樣這樣在網絡鄰居中輸入\\linsir01\share
  
  這個咱們在前面已經說過了,作何人都有讀寫以及執行的權限。也就是說完全共享的。windows或者linux的用戶,無論誰都有權限操作這裡的任何文件。
  
  那linux的機器如何查看windows機器上的共享文件呢。有時間我再來寫一下,不過還是用下面這個軟件比較方便。。
  
  LinNeighborhood-0.6.2-1.i386.rpm
  
  這個包,是我在Redhat 8.0 下編譯的。在Redhat下應該沒有任何問題。
  
  下載後,解壓和安裝
  
  #tar zxvf L*.tar.gz
  #rpm -ivh LinNeighborhood-0.6.2-1.i386.rpm
  
  運行命令,應該是
  #LinNeighborhood
  多後就是點幾下鼠標,設置一下就行了。

Copyright © Linux教程網 All Rights Reserved