samba是在linux和unix系統上實作smb協定的一個免費軟體,由伺服器及用戶端程式構成。smb(server messages block,資訊服務塊)是一種在區域網路上共享檔案和列印機的一種通信協定,它為區域網路内的不同計算機之間提供檔案及列印機等資源的共享服務。smb協定是客戶機/伺服器型協定,客戶機通過該協定可以通路伺服器上的共享檔案系統、列印機及其他資源。
samba服務的程式元件
samba伺服器提供了smbd、nmbd兩個服務程式,分别完成不同的功能;
smbd: 負責為客戶機提供伺服器中共享資源(目錄和檔案等)的通路;
nmbd: 負責提供基于netbios協定的主機名稱解析,以便于windows網絡中的主機進行查詢服務;
smbd程式負責監聽端口
smb協定139端口; cifs協定445端口;
nmbd程式負責監聽端口
負責監聽udp協定的137~138端口(netbios協定)
samba主配置檔案:/etc/samba/smb.conf
(關于配置檔案修改方法可參考man smb.conf),下面将簡單介紹配置檔案中主要修改部分含義;
security = share //設定使用者使用者通路samba伺服器認證方式; share: 使用者通路不需要賬戶密碼,可直接進行通路,即匿名通路; user: samba伺服器提供的共享檔案隻能被授權的使用者通路,由samba server 負責檢查賬号密碼的正确性; server: 依靠其他windows nt/2000或者samba server 來驗證使用者的賬号和密碼,是一種代理驗證方式; domain: 域安全級别,使用主域控制器(pdc)來完成認證。 passdb backend = tdbsam //定義使用者背景類型 smbpasswd: 使用smb服務的smbpasswd指令給系統設定smb密碼; tdbsmb: 建立資料庫檔案并使用pdedit建立smb獨立使用者,用smbpasswd -a username 為smb使用者設立密碼,前提是針對已有賬戶,也可使用 pdedit -a username //建立smb賬戶 pdedit -x username //删除smb賬戶 pdedit -l //檢視已有smb賬戶
實驗要求:
①伺服器提供samba服務;
②客戶機通路伺服器;
③拟定客戶機和伺服器在同一區域網路内;
伺服器ip:192.168.100.109
客戶機ip:192.168.100.3
④實作客戶機的匿名通路、使用者驗證通路和匿名使用者通路方式。
security = share //101行,以share方式共享檔案 在配置檔案底端增添需要共享檔案: [abc] //共享目錄為abc path=/opt/abc //共享目錄所在路徑 public=yes //檔案類型為公共 browseable=yes //允許通路該目錄 write=yes //可以寫入 create mask=0644 //匿名使用者寫入權限 directory mask =0755 //匿名使用者建立目錄權限
用戶端中實作匿名通路如下:
security = user //101行,以使用者驗證方式共享檔案 [share] //共享目錄為share path=/opt/share //共享目錄所在路徑 create mask=0644 //使用者寫入權限 directory mask =0755 //使用者建立目錄權限 valid users = zhangsan,lisi //設定允許通路的有效賬戶 write list = zhangsan //隻允許zhangsan賬戶有寫入權限
用戶端中實作賬戶通路如下:
zhangsan賬戶可以實作賬戶通路,并擁有在share檔案中讀寫權限。
lisi賬戶隻能在自己的家目錄下具有讀寫權限,而在share目錄下沒有寫入權限。
新增如下内容:
zhangsan = 01 02 03 //設定使用者别名 lisi = 11 22 33
security = user username map = /etc/samba/smbusers //加入虛拟使用者的檔案映射
用戶端中操作如下:
使用虛拟賬戶登陸,其他賬戶類似。