samba服務配置(一)

samba軟件結構:

 

/etc/samba/smb.conf                   #samba服務的主要配置文件

 

/etc/samba/lmhosts                      #samba服務的域名設定,主要設置IP地址對應的域名,類似linux系統的/etc/hosts

 

/etc/samba/smbusers                   #samba服務設置samba虛擬用戶的配置文件

 

/var/log/samba                         #samab服務存放日誌文件

 

/var/lib/samba/private/{passdb.tdb,secrets.tdb}      #存放samba的用戶賬號和密碼數據庫文檔

 

 

 

Samba在線安裝

 

[root@VMredhat6 ~]# yum -y install samba*                    #yum在線安裝samba

 

[root@VMredhat6 ~]# rpm -qa | grep samba                    #檢查samba安裝情況

samba-client-3.6.23-41.el6.x86_64

samba-winbind-clients-3.6.23-41.el6.x86_64

samba-3.6.23-41.el6.x86_64

samba4-libs-4.0.0-58.el6.rc4.x86_64

samba-common-3.6.23-41.el6.x86_64

samba-winbind-3.6.23-41.el6.x86_64

 

 

標註:Samab服務開啓之前需要關閉兩個服務,iptables防火牆(如果你熟悉可以不關閉,放行smb的端口即可,SAMBA服務TCP端口139,445  UDP端口 137,138);selinux服務。

 

關閉防火牆:

 

[root@VMredhat6 ~]# /etc/init.d/iptables stop                         #關閉防火牆

[root@VMredhat6 ~]# chkconfig --list iptables                       #查看防火牆啓動狀態

[root@VMredhat6 ~]# chkconfig iptables off                          #關閉防火牆開機自動啓動

 

關閉selinux:

 

[root@VMredhat6 ~]# vim /etc/selinux/config                      #永久關閉selinux

set SELINUX=disabled       #SELINUX=enforcing改爲SELINUX=disabled

 

 

標註:smb.conf配置文件分爲兩大類,一個全局設置參數,一個是文件共享設置參數:

 

#全局設置參數

 

[global]

 

config file = /etc/samba/smb.conf.%U                                                           #可以讓你使用另一個配置文件來覆蓋缺省的配置文件。如果文件 不存在,則該項無效。

 

workgroup = WORKGROUP                                   #工作組名稱

 

server string = Samba Server Version %v                   #主機的簡易說明

 

netbios name = MYSERVER                                        #主機的netBIOS名稱,如果不填寫則默認服務器DNS的一部分,workgroup和netbios name名字不要設置成一樣

 

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24                                  #設置samba服務器監聽網卡,可以寫網卡名稱或IP地址,默認註釋

 

hosts allow = 127. 192.168.12. 192.168.13.                                                  #設置允許連接到samba服務器的客戶端,默認註釋

 

hosts deny =192.168.12.0/255.255.255.0                                                     #設置不允許連接到samba服務器的客戶端,默認註釋

 

log level =1                                                                                                    #日誌文件安全級別,0~10級別,默認0

 

log file = /var/log/samba/%m                       #產生日誌文件的命名,默認以訪問者IP地址命名

 

max log size = 50                            #日誌文件最大容量50,默認50,單位爲KB,0表示不限制

 

 

security = share                            #設置用戶訪問samba服務器的驗證方式 ,一共四種驗證方式。

1. share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。

2. user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。

3. server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows用戶

和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程服務器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用用戶級安全模式作爲替代的方式。

4. domain:域安全級別,使用主域控制器(PDC)來完成認證。

 

passdb backend = tdbsam                         #定義用戶後臺類型

1、smbpasswd:使用SMB服務的smbpasswd命令給系統用戶設置SMB密碼

2、tdbsam:創建數據庫文件並使用pdbedit建立SMB獨立用戶,smbpasswd –a username建立samba用戶並設置密碼,不過建立samba用戶

必須先建立系統用戶,也可以使用pdbedit命令來建立samba用戶:

pdbedit –a username:新建Samba賬戶。

pdbedit –x username:刪除Samba賬戶。

pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。

pdbedit –Lv:列出Samba用戶列表的詳細信息。

pdbedit –c “[D]” –u username:暫停該Samba用戶的賬號。

pdbedit –c “[]” –u username:恢復該Samba用戶的賬號。

3、ldapsam:基於LDAP服務進行賬戶驗證

 

username map = /etc/samba/smbusers   #配合/etc/samba/smbusers文件設置虛擬用戶

 

 

 

#共享文件設置參數

 

[share]                                          #自定義共享名稱

 

comment =  This is share software                              #共享描述

 

path  =  /home/testfile                                                            #共享目錄路徑

 

browseable  =  yes/no                                                       #設置共享是否可瀏覽,如果no就表示隱藏,需要通過IP+共享名稱進行訪問

 

writable  =  yes/no                               #設置共享是否具有可寫權限

 

read only  =  yes/no                              #設置共享是否具有隻讀權限

 

admin users  =  root                             #設置共享的管理員,如果security =share 時,引項無效,多用戶中間使用逗號隔開,例如admin users = root,user1,user2

 

valid users  =  username                              #設置允許訪問共享的用戶,例如valid users = user1,user2,@group1,@group2(多用戶或組使用逗號隔開,@group表示group用戶組)

 

invalid users  =  username                              #設置不允許訪問共享的用戶

 

write list  =  username                               #設置在共享具有寫入權限的用戶,例如例如write list  = user1,user2,@group1,@group2(多用戶或組使用逗號隔開,@group表示group用戶組)

 

public  =  yes/no                                  #設置共享是否允許guest賬戶訪問

 

guest  ok  =  yes/no                               #功能同public 一樣

 

create mask = 0700                                          #創建的文件權限爲700

 

directory mode = 0700                                       #創建的文件目錄爲 700

 

 

 

一、不需要賬號密碼訪問的共享(security  =  share )

 

[root@VMredhat6 samba]# /etc/init.d/smb  start                   #啓動samba服務

[root@VMredhat6 samba]# ls -ld /home/smbuser/                  #查看共享文件權限

[root@VMredhat6 samba]# chmod 777 /home/smbuser/            #分配共享文件最大權限

[root@VMredhat6 samba]# testparm                                #檢查smb.conf配置文件是否有語法錯誤

[root@VMredhat6 samba]# netstat -tlnp | grep mbd                  #查看samba端口,TCP端口139,445  UDP端口 137,138

 

[root@VMredhat6 samba]# vim /etc/samba/smb.conf               #設置smb.conf配置文件

[global]

workgroup = WORKGROUP                                   #設置主機工作組

server string = Samba Server Version %v                     #samba服務註釋

 

log level = 1                                                   #設置日誌文件安全級別爲1

log file = /var/log/samba/%m                                  #設置日誌文件名稱,%m以IP地址爲名稱

max log size = 50                                              #設置日誌文件最大容量50KB,0表示不限制

 

security = share                                                  #以share驗證方式訪問

passdb backend = tdbsam                                       #定義用戶後臺類型

 

load printers = no                                                 #關閉打印共享功能

cups options = raw                                               #打印機選項

 

 

[usershare]

comment  =  Home Directories                                  #共享文件描述

path  =  /home/shareuser                                       #共享路徑

browseable  =  yes                                              #共享文件可以瀏覽

writable  =  yes                                                  #共享文件可寫

; read only  =  yes                                               #共享文件可讀,不能與writable共用

guest ok =  yes                                                  #允許guest用戶訪問

 

[root@VMredhat6 samba]# /etc/init.d/smb  restart                   #重啓samba服務

 

 

測試:

Windows系統操作:

在win 7系統打開運行輸入 \\192.168.10.150 直接訪問,不需要輸入任何用戶和密碼

 

 

 

在linux操作需要進行掛載:

[root@VMredhat6 ~]# yum -y install samba-client                  #在線安裝samba-client才能使用smbclient命令

[root@VMredhat6 ~]# smbclient -L //192.168.10.150                  #查看samba服務器共享目錄

[root@VMredhat6 ~]# mount -t cifs //192.168.10.150/usershare /mnt/share       #掛載

 

 

 

 

二、需要輸入賬號和密碼訪問的共享(security  =  user)

 

 

標註:創建samba用戶之前必須先創建系統用戶,系統用戶和samba用戶名一樣,但密碼可以設置成不一樣

 

[root@VMredhat6 samba]# useradd test01                                   #創建系統用戶test01

[root@VMredhat6 samba]# useradd test02                           #創建系統用戶test02

[root@VMredhat6 samba]# passwd test01                            #設置系統用戶test01密碼

[root@VMredhat6 samba]# passwd test01                          #設置系統用戶test02密碼

[root@VMredhat6 samba]# smbpasswd -a test01                   #把系統用戶test01添加爲samba用戶並設置samba用戶登錄密碼

[root@VMredhat6 samba]# smbpasswd -a test02                    #把系統用戶test02添加爲samba用戶並設置samba用戶登錄密碼

[root@VMredhat6 samba]# pdbedit –L                               #查看samba用戶

[root@VMredhat6 samba]# mkdir /home/{smbadmin01,smbuser01}          #home創建兩個共享目錄

[root@VMredhat6 samba]# chmod 777 /home/{smbadmin01,smbuser01}        #目錄分配最高權限

 

[root@VMredhat6 ~]# vim /etc/samba/smb.conf                          #設置smb.conf配置文件

 

[global]

workgroup = WORKGROUP                 #設置主機工作組

server string = Samba Server Version %v      #samba服務註釋

 

log level = 1                                                          #設置日誌文件安全級別爲1

log file = /var/log/samba/%m                                       #設置日誌文件名稱,%m以IP地址爲名稱

max log size = 50                                                    #設置日誌文件最大容量50KB,0表示不限制

 

security = user                                                          #以user驗證方式訪問

passdb backend = tdbsam                                             #定義用戶後臺類型

 

load printers = no                                                   #關閉打印共享功能

cups options = raw                                                  #打印機選項

 

[usershare]

comment  =  Home Directories                                        #共享文件描述

path  =  /home/smbuser01                                           #共享路徑

browseable  =  yes                                                   #共享文件可以瀏覽

read only  =  yes                                                     #共享文件可讀,不能與writable共用

valid users  =  test01,test02                                          #設置允許訪問共享用戶

 

[adminshare]

comment  =  Home Directories                                        #共享文件描述

path  =  /home/smbadmin01                                            #共享路徑

browseable  =  yes                                                     #共享文件可以瀏覽

writable  =  yes                                                         #共享文件可寫

create  make  =  0664                                                #設置用戶創建文件權限0664

directory  make  =  0775                                             #設置用戶創建目錄權限0775

write  list   =   test01                                                 #設置允許訪問共享具有寫入權限的用戶

 

[root@VMredhat6 samba]# /etc/init.d/smb  restart                         #重啓samba服務

 

 

測試:

Windows系統操作:

在win 7系統打開運行輸入 \\192.168.10.150 直接訪問,輸入test01用戶和密碼

 

 

 

在linux操作需要進行掛載:

 

[root@VMredhat6 ~]# yum -y install samba-client                     #在線安裝samba-client才能使用smbclient命令

[root@VMredhat6 ~]# smbclient -L //192.168.10.150                    #查看samba服務器共享目錄

[root@VMredhat6 ~]# mount -t cifs //192.168.10.150/usershare /mnt/share         #掛載

 

 

 

 

三、特殊操作:(samba用戶映射,又稱作虛擬用戶)

 

      上述操作是創建系統用戶再分配對應的samab用戶,通過samba用戶就能知道你的系統用戶,缺乏一定的安全性。不過,

samba提供了一種方法,就是把samba用戶映射成虛擬用戶。比如linux系統創建了一個用戶user,samba把user添加爲samba用戶,

samba再把user用戶虛擬成user01,user02等用戶,一個samba用戶可以虛擬成一個或多個虛擬用戶。這樣就可以保證系統用戶安全性。

 

 

操作跟上述操作一樣,只是修改一些地方即可:

 

[root@VMredhat6 ~]# vim /etc/samba/smb.conf                     #設置smb.conf配置文件

 

security = user                                               #以user驗證方式訪問

passdb backend = tdbsam                                   #定義用戶後臺類型

username map = /etc/samba/smbusers                     #添加這行配置,開啓samba虛擬用戶配置功能

 

[root@VMredhat6 samba]# vim /etc/samba/smbusers                #添加samba虛擬用戶

# Unix_name = SMB_name1 SMB_name2 ...

root = administrator admin

nobody = guest  pcguest  smbguest

test01 = user01  user02  user03

 

[root@VMredhat6 samba]# /etc/init.d/smb  restart                   #重啓samba服務

 

 

 

測試:

Windows系統操作:

在win 7系統打開運行輸入 \\192.168.10.150 直接訪問,輸入user01用戶,密碼是test01用戶密碼。

 

 



https://www.cnblogs.com/zoulongbin/p/7216246.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章