天天看點

Samba檔案共享服務

1、samba概述

1)smb和cifs

smb協定:server message block,服務消息塊

cifs協定:common internet file system,通用網際網路檔案系統

smb/cifs預設是微軟的私有協定

2)samba

samba是著名的開源軟體項目,在linux/unix上實作smb和cifs協定,可以跨平台檔案共享

samba軟體包組成:

samba-3.0.33-3.28.el5                           -----服務端程式

samba-client-3.0.33-3.28.el5                             -----用戶端程式

samba-common-3.0.33-3.28.el5                      -----公共元件

samba-swat-3.0.33-3.28.el5.i386.rpm   -----圖形化web管理程式

system-config-samba                                 -----圖形化界面的管理程式

samba提供兩個服務程式:

     smbd提供共享資源的通路,監聽tcp 的139端口(smb協定)和445端口(cifs協定)

     nmbd提供netbios名稱解析,監聽udp的137和138端口(netbios協定)

   smb服務:service smb start      -----會自動加載smbd和nmbd元件程式

3)安裝

rpm -ivh /mnt/iso/server/perl-convert-asn1-0.20-1.1.noarch.rpm

rpm -ivh /mnt/iso/server/samba-3.0.33-3.28.el5.i386.rpm

注:①預設情況下已安裝samba-common和samba-client

      ②perl-convert-asn1是samba所依賴的軟體包,必須安裝

2、主配置檔案/etc/samba/smb.conf

#表示注釋行,;表示樣例行,過濾:grep -v "#" /etc/samba/smb.conf  |grep -v "^;" |grep -v "^$"

testparm指令可用于檢查配置檔案正确性

此配置檔案中關鍵字對大小寫不敏感

1)常見全局配置項

workgroup:所在工作組名稱

server string:伺服器描述資訊

security:安全級别share、user、server、domain

log file:日志檔案位置,/var/log/samba/%m.log每個客戶機建立一個日志,%m變量表示客戶機位址

passwd backend---設定賬戶檔案的類型,預設為tdbsam,若需相容舊版samba密碼則改為smbpasswd

2)常見共享目錄配置項

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

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

browseable:該共享目錄是否可見,值為no時相當于隐藏共享目錄,類似于windows中的共享名加$

guest ok:是否允許所有人通路,等效于public,例guest ok=yes等于public=yes

writable:是否可寫,與read only的作用相反,例writable=no等于read only=yes

3)其他配置項

vaild users:隻有此名單内的使用者能通路共享資源(拒絕優先)(使用者名/@組名)

invalid users:隻有此名單内的使用者不能通路共享資源(拒絕優先)(使用者名/@組名)

write list:隻有此名單内的成員才可作寫入動作(使用者名/@組名)

directory mask:通過共享建立檔案夾的預設權限

create mask=0644:通過共享建立檔案的預設權限

hosts allow:隻有此網段/ip的使用者能通路共享資源

hosts deny:隻有此網段/ip的使用者不能通路共享資源

3、匿名通路的檔案共享

1)設定安全級别security = share

2)建立共享目錄

mkdir /var/software

chmod 777 /var/software

[software]

comment=public software

path = /var/software

public  = yes

read only = yes

3)service smb start 或service smb reload

注:用戶端隻能通路被指定為允許匿名通路的共享,即指定public=yes或guestok=yes的共享

4、帶驗證的檔案共享

1)  建立samba使用者

useradd tom

pdbedit -a tom

pdbedit -a root

pdbedit -x tom     -----删除samba使用者tom

pdbedit -vl       -----檢視samba共享使用者的詳細資訊

注:①samba使用獨立的賬号資料庫,但系統中必須有對應的賬号,其密碼可與系統密碼不同

②賬戶資料庫檔案預設位于/etc/samba/passdb.tdb,可使用pdbedit指令對samba使用者進行管理

③若需相容舊版samba密碼則修改passwd backend=smbpasswd,同時賬戶資料庫檔案為

/etc/samba/smbpasswd,使用smbpasswd指令管理smbpasswd –a tom、smbpasswd –x tom

2)設定使用者授權

[global]

security = user

 [software]

comment= public software

public  = no

     valid users=tom,@root       -----此處應填寫真實使用者名,非别名

     write list=root           -----root使用者有可寫的權限

     directory mask=0755          -----通過共享建立檔案夾的預設權限

     create mask=0644             -----通過共享建立檔案的預設權限

chmod 777 /var /software

注:①應確定真實使用者對共享目錄有本地系統權限,使用者最終權限是samba權限和系統權限的交集

    ②可以在[global]中添加invalid users配置項拒絕使用者通路samba服務,如invalid users=jack

    ③驗證valid users和write list時,應删除writable配置項

3)使用者名稱映射

vi  /etc/samba/smbusers

   root = administrator  admin

   tom = zhangsan lisi

vi  /etc/samba/smb.conf

username map=/etc/samba/smbusers  //在[global]中指定名稱映射檔案

  注:添加映射後别名使用者的密碼仍為真實使用者的密碼

4)添加授權的用戶端位址,既可以在[global]中全局配置,也可針對某個特定的共享

hosts allow=192.168.1.2 192.168.2.   //在[global]中指定

注:①hosts allow設定僅允許通路共享的位址,hosts deny設定僅拒絕通路的位址,兩項不要同時使用

    ②修改配置檔案後必須重新開機服務service smb restart

5、用戶端通路

1)使用smbclient通路

smbclient –l 192.168.1.1  //檢視共享資源清單,未指定使用者賬戶時将以匿名方式登陸

smbclient –l 192.168.1.1 -u tom%123              //指定賬戶為tom,密碼為123

smbclient –u tom //192.168.1.1/software

指令:ls、pwd、get、mget、put、mput、exit、help、lcd切換本地目錄

2)使用mount指令将共享目錄挂載到本地

mount –o username=tom //192.168.1.1/software  /mnt/iso

vi /etc/fstab

   //192.168.1.1/software     /mnt/iso  cifs  defaults,username=tom%123  0     0

注:當安全級别設定為user時,在linux中仍然可以通過smbclient工具通路匿名共享,但無法通過mount方式挂載通路;如果是在windows中則無法再通路匿名共享

3)使用自動挂載的方式

使用/etc/fstab檔案挂載samba共享資源時,每次開機都會自動挂載,如果伺服器未開機或其他原因,會導緻挂載失敗,影響開機速度,而使用自動挂載則可以解決此問題

vi /etc/auto.master

   /mnt        /etc/samba.misc

vi /etc/samba.misc

   samba     -fstype=cifs,username=tom,password=111     ://192.168.1.1/software

service autofs restart