天天看點

Linux—Samba檔案共享服務

samba檔案共享服務

簡介:

在windows網絡環境中,主機之間進行檔案和列印機共享是通過微軟自己的smb(server message block,服務消息塊)/cifs(common internet file system,通用網際網路檔案系統)私有網絡協定實作的.

samba是著名的開源軟體項目之一,它在linux/unix系統中實作了微軟的smb/cifs網絡協定,使得跨平台的檔案共享變得更加容易.

1.samba軟體的組成:

samba:服務端軟體

samba-client:用戶端軟體

samba-common:用于提供服務端和用戶端程式的公共元件

samba-swat:用于提供web接口的圖形管理程式(遠端裝samba時用到)

Linux—Samba檔案共享服務

安裝samba包:

Linux—Samba檔案共享服務

2.samba服務的程式元件:

samba伺服器提供smbd 、nmbd兩個服務程式,用來完成不同的功能.

smbd: 負責為客戶機提供伺服器中共享資源(目錄和檔案等)的通路;

nmbd:負責提供基于 netbios協定的主機名稱解析,以便為windows網絡中的主機進行查詢服務

啟動samba服務: /etc/rc.d/init.d/smb  start 或者 service   smb    start

Linux—Samba檔案共享服務

啟動smb服務後,會自動加載smbd和nmbd兩個程式元件.使用netstat指令可以驗證服務程序狀态:

smbd程式負責監聽tcp協定的139端口(smb協定),445端口(cifs協定);

nmbd服務程式負責監聽udp協定的137-138端口(netbios協定)

Linux—Samba檔案共享服務

3.主配置檔案smb.conf

   samba服務的配置檔案: /etc/samba目錄中

主配置檔案: smb.conf

(以”#”号開始的行表示注釋性的文字; 以”;”開始的行表示配置樣例)

eg:使用grep指令過濾出smb.conf檔案中的有效配置.

grep -v "#" /etc/samba/smb.conf | grep -v "^;" | grep -v "^$"

Linux—Samba檔案共享服務

注解:

[ global ]全局設定:這部配置設定置項的内容對整個samba伺服器都有效.

[ homes ]宿主目錄共享設定:設定linux使用者的預設共享,對應使用者的宿主目錄;當使用者通路伺服器中與自己使用者名同名的共享目錄時,通過驗證後将會自動映射到該使用者的宿主檔案夾中

[ printers ]列印機共享設定:如果需要列印機裝置,可以在這部分進行設定

samba伺服器的常見配置項及含義說明:

workgroup

所在工作組名稱

server string

伺服器描述資訊

security

安全級别,可用值如下:share、user、server、domain

log file

日志檔案位置,“%m”變量表示客戶機位址

max log size

日志檔案的最大容量,機關為kb

passwd backend

設定共享賬戶檔案的類型

comment

對共享目錄的注釋、說明資訊

path

共享目錄在伺服器中對應的實際路徑

browseable

該共享目錄在“網路上的芳鄰”中是否可見

guest ok

是否允許所有人通路,等效于“public”

writable

是否可寫,與read only的作用相反

若要相容舊版的samba密碼檔案,應設定passwd backend = smbpasswd 

samba伺服器提供了一個配置檔案檢查工具——testparm程式,使用testparm工具可以對smb.conf配置檔案的正确性進行檢查,如果發現有錯誤将會進行提醒:

eg:當配置檔案中的public共享設定未指定檔案夾路徑時會報錯:

Linux—Samba檔案共享服務

建構檔案共享伺服器:

可匿名通路的共享:

可匿名通路的共享适用于公開的資源分享,一般隻建議提供隻讀通路。

修改主配置檔案以便支援匿名共享檔案夾:

将預設的安全級别修改為share ;添加一段共享目錄配置。

eg:将本地挂載CD光牒目錄/media/cdrom釋出為共享檔案夾,共享名為rhel5:

Linux—Samba檔案共享服務
Linux—Samba檔案共享服務
Linux—Samba檔案共享服務

從客戶機通路并驗證

需使用者驗證的共享:

步驟:

将預設的安全級别修改為share;添加共享目錄配置,指定使用者權限;需先建立授權的共享賬戶

建立samba使用者資料庫

預設資料庫檔案位于:/etc/samba/passdb.tdb

pdbedit  -a  -u   wzx添加共享使用者(-a:添加-u:指定使用者名稱)

Linux—Samba檔案共享服務

pdbedit   -l    列出所有的samba共享使用者

pdbedit   -x   -u  删除samba使用者

Linux—Samba檔案共享服務

設定使用者通路授權:

建立測試目錄:

Linux—Samba檔案共享服務
Linux—Samba檔案共享服務

修改smb.conf配置檔案,添加名為tools的共享目錄:

Linux—Samba檔案共享服務
Linux—Samba檔案共享服務

重新加載smb.conf檔案,或重新開機smb服務:

Linux—Samba檔案共享服務

确定目錄通路授權(将檔案夾的權限設定為777以便u1使用者能夠讀取、寫入):

Linux—Samba檔案共享服務

設定上傳檔案和目錄的預設權限:

Linux—Samba檔案共享服務

使用者映射及通路位址限制:

共享賬号映射(别名):

samba共享賬号的映射檔案預設位于/etc/samba/smbusers

格式:共享使用者名 =  别名1  别名2  别名3  …

該檔案中預設已經添加了兩條相容windows客戶機的别名映射:

Linux—Samba檔案共享服務

注解:

當客戶機以使用者administrator或admin通路共享時,samba伺服器将視為本機的共享使用者root;

當使用者guest、pcguest等被映射為共享使用者nobody

eg:為現有的samba共享使用者u1指定兩個别名hello、welcome:

Linux—Samba檔案共享服務

設定好别名記錄後,修改修改主配置檔案後重新開機服務以便正常啟用賬号映射功能:

Linux—Samba檔案共享服務
Linux—Samba檔案共享服務

通路位址限制:

一般用在全局配置[global]部分

hosts allow配置項:僅允許特定的客戶機

hosts deny配置項:僅拒絕特定的客戶機

客戶機位址表示形式:以空格分隔多個位址

主機名或ip位址,例如:192.168.168.11 或者prtsvr 

網絡段位址(省去主機部分),例如:173.17. 或者173.17.0.0/255.255.0.0

Linux—Samba檔案共享服務

通路共享檔案夾:

使用smbclient 通路共享檔案夾:

查詢目标主機的共享資源清單:

Linux—Samba檔案共享服務

登入并通路共享檔案夾

格式: //主機位址/共享名

eg:連接配接到samba伺服器192.168.10.1中名為rhel的匿名共享目錄:

Linux—Samba檔案共享服務

eg:使用共享使用者u1(或别名hello,welcome)通路tools共享:

Linux—Samba檔案共享服務

ls :用于清單目錄;pwd :檢視目前路徑

get 和mget:用于下載下傳檔案;put 和mput用于上傳檔案

?或help :檢視各種交換指令的線上幫助資訊

Linux—Samba檔案共享服務
Linux—Samba檔案共享服務

使用mount 挂載共享檔案夾:

格式:通過”//主機位址/共享名”指定共享檔案夾的位置,并指定本地的挂載點的目錄

eg:将samba伺服器192.168.10.1中的tools共享目錄挂載到本地的/media/smbdir/檔案夾以便共享使用者u1進行驗證:

Linux—Samba檔案共享服務

samba服務就此成功!

歡迎關注微信公衆号:小溫研習社

Linux—Samba檔案共享服務

繼續閱讀