samba服務配置

samba是一個實現不一樣操做系統之間文件共享和打印機共享的一種SMB協議的免費軟件。linux

 

 

 

samba軟件結構:ios

 

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

 

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

 

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

 

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

 

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

 

 

 

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                         #定義用戶後臺類型

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

二、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用戶的帳號。

三、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

 

 

 

1、不須要帳號密碼訪問的共享(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       #掛載

 

 

 

 

2、須要輸入帳號和密碼訪問的共享(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         #掛載

 

 

 

 

3、特殊操做:(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用戶密碼。

 

 

相關文章
相關標籤/搜索