配置samba服務器@手把手

配置Samba服務器:

之前咱們在windows上共享文件的話,只需右擊要共享的文件夾而後選擇共享相關的選項設置便可。然而如何實現windows和linux的文件共享呢?這就涉及到了samba服務了,這個軟件配置起來也不難,使用也很是簡單。linux

安裝samba:

安裝系統的時候大多會默認安裝samba,若是沒有安裝,在CentOS上只須要運行這個命令安裝便可:ios

##同時安裝了samba服務和客戶端;
[aming@Dasoncheng ~]$ yum install -y samba samba-client

Samba配置文件:

Samba的配置文件爲/etc/samba/smb.conf,經過修改這個配置文件來完成咱們的各類需求。打開這個配置文件,你會發現不少內容都用 # 或者 ; 注視掉了。先看一下未被註釋掉的部分:數據庫

[global]                                                  #全局參數
	workgroup = SAMBA                  #工做組名稱
	security = user             #安全驗證的方式,總共有4種(詳細下面介紹)

	passdb backend = tdbsam    #定義用戶後臺的類型,共有3種

	printing = cups
	printcap name = cups
	load printers = yes    	#設置在Samba服務啓動時是否共享打印機設備
	cups options = raw    	#打印機的選項

[homes]                  #共享參數
	comment = Home Directories    	#描述信息
	valid users = %S, %D%w%S  
	browseable = No    	#指定共享信息是否在「網上鄰居」中可見
	read only = No            #定義是否僅可讀,與「writable」相反
	inherit acls = Yes

[printers]
	comment = All Printers
	path = /var/tmp    	#共享文件的實際路徑(重要)。
	printable = Yes
	create mask = 0600
	browseable = No

[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = root
	create mask = 0664
	directory mask = 0775

主要有以上三個部分:[global], [homes], [printers]vim

[global] 定義全局的配置,workgroup用來定義工做組,相信若是您安裝過windows的系統,你會對這個workgroup不陌生。通常狀況下,須要咱們把這裏的MYGROUP改爲WORKGROUP(windows默認的工做組名字)。windows

  • security = user #這裏指定samba的安全等級。 關於安全等級有四種:
  1. share:用戶不須要帳戶及密碼便可登陸samba服務器
  2. user:由提供服務的samba服務器負責檢查帳戶及密碼(默認)
  3. server:檢查帳戶及密碼的工做由另外一臺windows或samba服務器負責
  4. domain:指定windows域控制服務器來驗證用戶的帳戶及密碼。
  • passdb backend = tdbsam # passdb backend(用戶後臺),samba有三種用戶後臺:smbpasswd, tdbsam和ldapsam.
  1. smbpasswd:該方式是使用smb工具smbpasswd給系統用戶(真實用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用此密碼訪問Samba資源。smbpasswd在/etc/samba中,有時須要手工建立該文件。
  2. tdbsam:使用數據庫文件建立用戶數據庫。數據庫文件叫passdb.tdb,在/etc/samba中。passdb.tdb用戶數據庫可以使用 smbpasswd -a 建立Samba用戶,要建立的Samba用戶必須先是系統用戶。也可以使用pdbedit建立Samba帳戶。pdbedit參數不少,列出幾個主要的:
  • 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用戶帳號。
  1. ldapsam:基於LDAP帳戶管理方式驗證用戶。首先要創建LDAP服務,設置 「passdb backend = ldapsam:ldap://LDAP Server」
  • load printers 和 cups options 兩個參數用來設置打印機相關。

除了這些參數外,還有幾個參數須要你瞭解:centos

  • netbios name = MYSERVER # 設置出如今網上鄰居中的主機名
  • hosts allow = 127. 192.168.12. 192.168.13. # 用來設置容許的主機,若是在前面加 」;」 則表示容許全部主機
  • log file = /var/log/samba/%m.log #定義samba的日誌,這裏的%m是上面的netbios name
  • max log size = 50 # 指定日誌的最大容量,單位是K

[homes] 該部份內容共享用戶本身的家目錄,也就是說,當用戶登陸到samba服務器上時其實是進入到了該用戶的家目錄,用戶登錄後,共享名不是homes而是用戶本身的標識符,對於單純的文件共享的環境來講,這部分能夠注視掉。
[printers] 該部份內容設置打印機共享。瀏覽器

重要提醒:centos7的share模式和6.系列有區別;實戰1演示安全

samba實戰1:

需求:共享一個目錄,任何人均可以訪問,即不用輸入密碼便可訪問,要求只讀!服務器

編輯配置文件:

環境centos6.xdom

cat  /etc/samba/smb.conf  ##其餘的如[home]、[print]等,不須要能夠註釋掉!
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[share]
        comment = share all
        path = /tmp/samba
        browseable = yes
        public = yes
        writable = no

環境centos7.x

[root@Dasoncheng2 ~]# cat /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
 #	security = share        ##這裏區別1
	passdb backend = tdbsam
        share modes = yes    ##這裏區別2
	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw
[share]
       comment = Share all
       path = /tmp/samba
       browseable = yes
       public = yes
       writable = no
       security = share     ##這裏區別3

建立測試目錄:

[root@Dasoncheng2 ~]# mkdir /tmp/samba
[root@Dasoncheng2 ~]# chmod 777 /tmp/samba/
[root@Dasoncheng2 ~]# touch /tmp/samba/sharefiles
[root@Dasoncheng2 ~]# echo "111111" > /tmp/samba/sharefiles

測試配置文件:

##測試你配置的smb.conf是否正確,用下面的命令:
[root@Dasoncheng2 ~]# testparm

你應該會看到一個警告:WARNING: The security=share option is deprecated, 不過影響不大,無需管它。若是沒有錯誤,則在你的windows機器上的瀏覽器中輸入:
file://IP/share

file://192.168.60.12/share ##這個share是[share]的名字;

啓動smb服務:

[root@Dasoncheng2 ~]# systemctl start smb

Windows端測試:

mark
mark
mark

Samba實戰2:

以centos7爲例:
編輯配置文件:

[root@Dasoncheng2 ~]# cat /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
 	security = user

	passdb backend = tdbsam
        share modes = yes
	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw
[share2]
       comment = Share all2
       path = /tmp/samba2
       browseable = yes
       public = no
       writable = yes

建立共享文件夾:

[root@Dasoncheng2 ~]# mkdir /tmp/samba2
[root@Dasoncheng2 ~]# chmod 777 /tmp/samba2
[root@Dasoncheng2 ~]# touch /tmp/samba2/sharefiel2
[root@Dasoncheng2 ~]# echo "2222222" > /tmp/samba2/sharefiel2

建立用戶:

[root@Dasoncheng2 ~]# useradd user1  ##建立系統用戶;
[root@Dasoncheng2 ~]# pdbedit -a user1  ##添加user1爲samba帳號
new password:
retype new password:
Unix username:        user1
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3131785581-1912635650-3533182432-1000
Primary Group SID:    S-1-5-21-3131785581-1912635650-3533182432-513
Full Name:            
Home Directory:       \\localhost\user1
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\user1\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Sun, 11 Feb 2018 16:42:09 CST
Password can change:  Sun, 11 Feb 2018 16:42:09 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

而後輸入用戶名和密碼便可訪問:

Samba實戰3:

需求:使用linux訪問samba服務器。
Samba服務在linux下一樣能夠訪問。前提是您的linux安裝了samba-client軟件包。安裝完後就可使用smbclient命令了。具體語法爲:

smbclient //IP/共享名  -U 用戶名
[aming@Dasoncheng ~]$ smbclient //192.168.60.12/share -U user2  ##這裏報錯,我也搞不懂 服務端的globe的security沒有share,我下面就把本地的share修改成user了就行了;
WARNING: Ignoring invalid value 'share' for parameter 'security'
smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it
[aming@Dasoncheng ~]$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: Ignoring invalid value 'share' for parameter 'security'
Error loading services.
[aming@Dasoncheng ~]$ vim /etc/samba/smb.conf
[aming@Dasoncheng ~]$ sudo vim /etc/samba/smb.conf
[aming@Dasoncheng ~]$ smbclient //192.168.60.12/share -U user2
Enter WORKGROUP\user2's password: 
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \> ?  ##登陸了以後,使用?列出全部可用命令
?              allinfo        altname        archive        backup         
blocksize      cancel         case_sensitive cd             chmod          
chown          close          del            dir            du             
echo           exit           get            getfacl        geteas         
hardlink       help           history        iosize         lcd            
link           lock           lowercase      ls             l              
mask           md             mget           mkdir          more           
mput           newer          notify         open           posix          
posix_encrypt  posix_open     posix_mkdir    posix_rmdir    posix_unlink   
posix_whoami   print          prompt         put            pwd            
q              queue          quit           readlink       rd             
recurse        reget          rename         reput          rm             
rmdir          showacls       setea          setmode        scopy          
stat           symlink        tar            tarmode        timeout        
translate      unlock         volume         vuid           wdel           
logon          listconnect    showconnect    tcon           tdis           
tid            logoff         ..             !              
smb: \> q

另外的方式就是經過mount掛載了,如:

[root@Dasoncheng2 ~]# mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456

格式就是這樣,要指定 -t cifs //IP/共享名 本地掛載點 -o後面跟username 和 password 掛載完後就能夠像使用本地的目錄同樣使用共享的目錄了,注意共享名後面不能有斜槓。

相關文章
相關標籤/搜索