天天看點

samba網絡服務的搭建和配置

一.理論知識:

1.samba代替nfs的原因。

2.<b> </b>Windows主機之間使用SMB/CIFS協定進行檔案和列印的共享。(微軟的服務)

端口:445  139

3. samba的核心是兩個守護程序smbd和nmbd程式。

Smbd和nmbd使用的全部配置資訊全都儲存在smb.conf檔案中。

Smb.conf向smbd和nmbd兩個守護程序說明輸出什麼以便共享,共享輸出給誰及如何進行輸出。

4.Smbd程序的作用是提供檔案/列印共享。

nmbd程序是提供網絡中域或者工作組内的主機進行主機名稱的解析<b> </b>。

二.安裝(四個包1.samba 2.samba-common  3.samba-client  4.system-config-samba )

1.rpm安裝

rpm –ivh /media/cdrom/Redhat/RPM/samba*   

2.源碼包的安裝(samba-3.0.22.tar.gz)

tar xzvf  samba-3.0.22.tar.gz

cd  samba-3.0.22/source

./configure  --prefix=/usr/local/samba  --sysconfdir=/etc/samba/

make

make install

三./etc/samba/smb.conf主配檔案的主要參數:

在smb.conf檔案中,注釋行以“#”開頭,同時每項中英文字母不區分大小寫,在一行最後字元尾加 “\”,可将一行分成多行。用“;”開頭的行,是可改變的配置,将“;”去掉時,該配置将取作用。

提問:grep的含義;常用參數

1. grep -v "^#" /etc/samba/smb.conf |grep -v "^;"(排除以#和;開頭的行)

[global]

   workgroup = MYGROUP

   ;hosts allow = 192.168.1   192.168.2

   server string = Samba Server

   printcap name = /etc/printcap

   load printers = yes

cups options = raw

;hosts allow = 192.168.1.     10.100.100.    (注意格式  )

  log file = /var/log/samba/%m.log

   max log size = 50

   security = user

[homes]

   comment = Home Directories

   browseable = no

   writable = yes

[printers]

   comment = All Printers

   path = /var/spool/samba

   guest ok = no

   writable = no

   printable = yes

create mask = 0755   建立檔案時 權限是755

only  guest  =   yes  僅以匿名使用者登入

[global](全局參數的設定,它對samba的功能具有很大的影響,主要用來設定整個系統規則。 

workgroup= 這是你在windows中的域。 

server string= 這是在windows中看到你的samba的解釋。 

netbios name =192.168.1.125(我linux主機IP),如果把該句注消,預設的是你LINUX機器名,不過,最好還是自己填上 

dos charset=GB2312 

unix charset=GB2312 加上這二句就可以正确顯示中文了。 

hosts allow 允許登入的linux-samba的主機名單,用IP位址給出,多個IP位址用空格分開,不在名單中的主機将不能得到samba提供的服務,這也是網絡安全的一個方面。 

printcap name 指定printcap檔案位址,通常為/etc/printcap,包含了linux列印機的配置資訊。 

load printers 允許使用共享列印機時,預設值為yes。 

log file = /usr/local/samba/var/log.%m 

max log size = 0 

  上面這兩行則是Samba日志的相關定義。其記錄檔案的位置是放在/var/log/samba/%m.log,安裝目錄不一樣,日志可不一樣,後面的一條是定義日志記錄檔案的大小,機關是KB,如果是0的話就不限大小。 

guest acount 來賓帳戶,表示用哪一個Linux使用者作為所要的客戶連接配接,定義Samba預設的使用者賬号,這個賬号必須在/etc/passwd中。 

security 指定安全模式。大多數使用者使用user級的安全模式,samba用本地linux密碼檔案驗證。 

security = security_level  定義Samba的安全級别,按從低到高分為四級:share,user,server,domain。它們對應的驗證方式如下: 

1.    share:沒有安全性的級别,任何使用者都可以不要使用者名和密碼通路伺服器上的資源。 

2.    user:samba的預設配置,要求使用者在通路共享資源之前資源必須先提供使用者名和密          碼進行驗證。   

3.    server:和user安全級别類似,但使用者名和密碼是遞交到另外一個伺服器去驗證,比如遞交給一台NT伺服器。如果遞交失敗,就退到user安全級。 

4.    domain:這個安全級别要求網絡上存在一台Windows的主域控制器,samba把使用者名和密碼遞交給它去驗證。

注意:

/etc/samba/lmhosts 檔案提供ip和netbios名稱間的解析

後面三種安全級都要求使用者在本linux機器上也要系統帳戶。否則是不能通路的 

smb passwd file=/etc/samba/smbpasswd (設定smb密碼檔案的位置) 

username map =/etc/smbusers 

encrypt passwords =no 采用的時明文密碼驗證,如果是加密的,就改為yes

四.使用者的建立

1.使用者必須是系統使用者。用useradd添加

2.密碼用smbpasswd –a 後面跟使用者名,然後會提示你輸入密碼

d 禁用某個使用者

e 啟用

X 删除 

五.使用swat管理Samba伺服器

    1.安裝swap rpm -ivh samba-swat-3.0.10-1.4E.i386.rpm

    2. chkconfig  swat  on

3. service xinetd restart

六. testparm指令是配置檔案測試工具,可以對smb.conf配置檔案的文法進行檢測,并顯示目前配置的清單

七.Smbstatus  顯示伺服器的連接配接資訊

八.Smbclient –L 192.168.1.1  顯示192.168.1.1 這個伺服器上的共享目錄

九.目錄挂載

.Smbmount用于挂再linux共享目錄。    smbmount //192.168.1.2/public /mnt

    mount -t smbfs -o username=st02   //192.168.1.2/public /mnt

十一 大學總結

1.Windows主機之間使用SMB/CIFS協定進行檔案和列印的共享

2.Samba伺服器在Linux /UNIX系統中實作了SMB/CIFS協定

3.Samba伺服器需要運作smbd和nmbd兩個服務程式

4.配置檔案smb.conf是Samba伺服器配置的核心

5.使用smbclient和smbmount用戶端指令可以連接配接使用Samba伺服器中的共享目錄

實驗

常見共享目錄配置項的含義

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

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

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

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

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

    read only = yes

    writable

<b>實驗</b><b>:</b>

一: 建立資源,使登陸到該伺服器的使用者均有權使用該空間(包括讀,寫)

.編輯smb.conf檔案

vi smb.conf

[resource]

comment = local resource 

path = /var/samba/resource 

read only = no 

public = yes //允許guest使用者通路

. 建立共享檔案夾

mkdir -p /var/samba/resource

. 由于任何人都能使用,是以得給該檔案夾設定通路權限. 

chmod 707 /var/samba/resource

. 如果想在該檔案夾中放置預共享檔案,而又不想花時間從别的檔案夾中cp過來,此時可以使用指針.比如想共享/usr/share/doc中的檔案,則可以:

ln -s /usr/share/doc /var/samba/resource/doc

進入/var/samba/resource ls一下,是不是出現指針檔案了!

二: 建立一資源,隻能讓使用者liu全權通路.

. 編輯smb.conf檔案

[liu]

comment = liu

path = /var/samba/liu

valid users = liu //隻允許liu通路 或者@組名

public = no

writable = yes

mkdir -p /var/samba/liu

. 由于隻能讓liu使用,是以得給該檔案夾設定通路權限. 

chown liu.liu /var/samba/liu

chmod 700 /var/samba/liu

此時該檔案夾屬于liu使用者,并且隻能由liu使用者通路.

例: 建立一資源,隻能讓root,zhang和wang通路.

[zhang wang]

comment = zhang wang

valid users = zhang     wang     

create mask = 0707           create

mkdir -p /var/samba/zhangwang

. 給該檔案夾設定通路權限. 

chmod 707 /var/samba/zhangwang

此時該檔案夾隻能root,zhang,wang通路了.

例: 建立一資源,讓指定的組group2中的使用者通路.

[group]

comment = group2

path = /var/samba/group2

public = yes

write list = @group2 //設定讀寫通路使用者清單(read list)

mkdir -p /var/samba/group2

chown group2.group2 /var/samba/group2

chmod 770 /var/samba/group2

此時該檔案夾隻能由group2中的使用者通路了.

(3). 以上為建立共享檔案夾,下面為建立共享列印機.

. 配置列印機的方面有很多,比如使用redhat-config-printer指令即可調出配置菜單.

. 當然smb.conf中也要設定啊:

printcap name = /etc/printcap //配置檔案路徑

writable = no

guest ok = yes //guest可用

browseable = no //不可浏覽

ptrintable = yes

path = /var/spool/samba //隊列位置

printer admin = root //列印機管理者

其他配置不變或按情配置

接下來再添加print驅動設定:

[print$]

comment = printer drivers

path = /etc/samba/drivers

browseable = yes

guest ok = no

read only = yes

write list = root

接着建立drivers檔案夾:mkdir -p /etc/samba/drivers

最後給使用者準備列印機驅動,并啟動列印共享:

注意:例3,4是補充内容,課本上沒有!!!

cupsaddsmb -a -U root //-a為共享所有列印機 -U為以root身份執行

cupsaddsmb指令

靈活的samba權限

write list = aa這兩行的作用:雖然該目錄隻讀,但aa仍然能寫

read only = no

read    list = aa 作用:雖然該目錄都可寫,但aa隻讀

本文轉自 gehailong 51CTO部落格,原文連結:http://blog.51cto.com/gehailong/263894,如需轉載請自行聯系原作者

繼續閱讀