samba

samba


  • samba概述

  • samba原理

  • samba服務

  • samba的命令

  • samba搭建實例

  • 使用GUI工具SWAT管理samba


samba概述

什么是samba?

samba是基于smb(Server Message Block)協議的一種實現方式。

samba的功能是什么?

samba能夠用來在windows,unix平臺間實現文件共享服務,不同于FTP與NFS的是,samba能夠很好的跨平臺實現共享,并在本地掛載共享文件夾。

samba原理

samba

1.SMB是基于NetBIOS的一個網絡文件共享協議,允許cilent從服務器端訪問文件資源。
2.NetBIOS協議是一個用來讓局域網內的主機互相連接的通訊協議,被廣泛用于windows平臺間的通信。
3.samba就是基于smb開發的,讓unix主機能夠通過mbr協議與windows平臺進行文件共享。

samba服務

samba的安裝包:

 samba                samba服務器端程序。
 libsmbclient         samba客戶端庫文件。
 samba-client        samba客戶端程序。    
 samba-common        samba客戶端以及服務端都會用到的文件,如samba.conf等。
 samba-winbind        samba對于windows域的支持的服務端的庫。
 samba-winbind-clients    samba windwos域的客戶端。

samba的進程文件:

nmb:負責管理工作組,NETBIOS解析,工作在UDP的137,138端口上。
smb:負責對通過驗證的請求調用系統資源,工作在TCP的139或445端口上。

samba的文件:

/etc/samba/smb.conf            samba的主要配置文件。
/etc/samba/smbusers            共享服務中,linux與windows的賬號的映射,格式為 linuxuser = windowsuser1,windowsuser2
/var/lib/samba/private/passdb.tdb / secrets.tdb            samba用戶賬號密碼存放的數據庫。

samba.conf

[global]


  [network]

    workgroup = MYGROUP        工作組名稱,要與windows的工作組名稱一致。
    server string = Samba Server Version %v        

;    netbios name = MYSERVER

;    interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 
;    hosts allow = 127. 192.168.12. 192.168.13.


  [login]
    log file = /var/log/samba/log.%m    日志文件路徑。
    max log size = 50        一個日志文件最大多少Kb進行輪替。

  [獨立服務器設定  Standalone Server]
    security = user|share|domain  安全認證方式   
                        share:共享模式  
                        user:使用samba服務器的密碼庫    
                        domain:使用外部域服務器的密碼。        
    passdb backend = tdbsam     密碼庫格式。


  [域成員設定 domain members]
;    security = domain
;    passdb backend = tdbsam
;    realm = MY_REALM

;    password server = <NT-Server-Name>

.................... 海量設置請自行查看此文件,或者查看/usr/share/doc/samba[version] 幫助手冊。


#============================ Share Definitions ==============================

[homes]
    comment = Home Directories            注釋信息。
    browseable = no                        是否讓所有人都看到此目錄。
    writable = yes                        是否可以寫入。
;    valid users = %S                    有效的用戶。
;    valid users = MYDOMAIN\%S

[printers]
    comment = All Printers
    path = /var/spool/samba            共享文件夾路徑。
    browseable = no
    guest ok = no                    是否允許來賓賬號訪問。
    writable = no
    printable = yes                    是否允許打印。            

# Un-comment the following and create the netlogon directory for Domain Logons        格式參考模板1
;    [netlogon]
;    comment = Network Logon Service
;    path = /var/lib/samba/netlogon
;    guest ok = yes
;    writable = no
;    share modes = no


# Un-comment the following to provide a specific roving profile share        格式參考模板2
# the default is to use the user's home directory
;    [Profiles]
;    path = /var/lib/samba/profiles
;    browseable = no
;    guest ok = yes


# A publicly accessible directory, but read only, except for people in        格式參考模板3
# the "staff" group
;    [public]
;    comment = Public Stuff
;    path = /home/samba
;    public = yes
;    writable = yes
;    printable = no
;    write list = +staff

smb.conf基礎共享屬性格式小結:

[NAME]                            共享名稱,windows看見的文件夾名稱。
comment = [STRING]                 注釋信息。
path = /PATH/TO/SHARE_DIR        共享文件夾的路徑。
browseable = yes|no                是否讓所有人都看到此目錄。
guest ok = yes|no                是否允許來賓賬號。
writable = yes|no                是否允許寫入。
read only = yes|no                是否設定只讀。
write list = group,user            只有在此條中組或用戶才能寫入。

賬號,權限相關

與nfs相同,samba的可行性權限也是用戶權限與文件夾權限的交集,所以在設置時請確認用戶,文件夾權限兩點。

如果沒有設定guest ok,samba默認是不允許匿名登陸的,一定要設定賬號。

samba的命令與客戶端訪問

testparm:測試有效的exports內的屬性。

testparm

pdbedit:管理smb的用戶數據庫。

pdbedit -L [-vm]      列出數據庫中的用戶等信息,-v詳細信息,-w使用smbpasswd格式。
pdbedit -a -u [user]   新增一個用戶,但必須存在實體用戶。
pdbedit -r -u [user]   修改一個用戶的信息,需搭配其他參數,可參考man文檔。
pdbedit -x -u [user]   刪除一個用戶。
pdbedit -a -m -u [machine account計算機賬號]   添加一個計算機賬號,域相關。

smbpasswd:改變samba賬戶的密碼。

smbpasswd -a [user]    新增用戶以及密碼。
smbpasswd -r [user]       修改用戶密碼。
smbpasswd -x [user]       刪除用戶。
smbpasswd -d [user]    禁止登陸。
smbpasswd -e [user]    啟用用戶。

smbclient:unix客戶端訪問工具。

smbclient -L //IPADDR [-U smbuser]    測試查看目標服務器所開放的共享文件夾
smbclient //IPADDR/dir    -U smbuser     連接共享服務器文件夾。

[root@host2 ~]# smbclient //192.168.1.1/test -U xiao     命令行形式訪問。
Enter xiao's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7]
smb: \> help
?              allinfo        altname        archive        blocksize      
cancel         case_sensitive cd             chmod          chown      
....

掛載訪問。

mount -t cifs -o username=xiao,password=redhat -l //192.168.1.1/test  /tmp

samba搭建實例

smb服務搭建:


host1(192.168.1.1):

[root@host1 ~]# yum install samba
[root@host1 ~]# vim /etc/samba/smb.conf
        [test]
        comment = test on 192.168.1.1 server!
        path = /tmp/samba
        writable = yes
        guest ok = yes
        write list = xiao
[root@host1 ~]# testparm
[root@host1 ~]# pdbedit -a -u xiao
[root@host1 ~]# pdbedit -L
[root@host1 ~]# mkdir -pv /tmp/samba
[root@host1 ~]# setfacl -m u:xiao:rwx /tmp/samba
[root@host1 ~]# service nmb start
[root@host1 ~]# service smb start
ps.配置iptables并設置selinux。

測試:


host2(192.168.1.2):

[root@host2 ~]# smbclient -L //192.168.1.1 -U xiao          查看192.168.1.1共享的文件夾,并指定賬戶。
Enter xiao's password:                         輸入密碼。
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7]        

    Sharename       Type      Comment
    ---------       ----      -------
    test            Disk      test on 192.168.1.1 server!
    IPC$            IPC       IPC Service (Samba Server Version 3.6.23-30.el6_7)
    xiao            Disk      Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7]

    Server               Comment
    ---------            -------
    HOST1                Samba Server Version 3.6.23-30.el6_7        可以看到host1。

    Workgroup            Master
    ---------            -------
    MYGROUP              HOST1
    WORKGROUP            XIAOLAOPO

[root@host1 ~]# smbclient //192.168.1.1/test -U xiao        訪問192.168.1.1的共享文件夾test
Enter xiao's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7]
smb: \> ls            列出文件夾。
  .                                   D        0  Tue Apr 26 19:03:03 2016
  ..                                  D        0  Wed Apr 27 17:32:03 2016
  a.txt                               A        0  Tue Apr 26 19:02:57 2016

        35418 blocks of size 524288. 23572 blocks available
smb: \> get a.txt                 嘗試下載a.txt
getting file \a.txt of size 0 as a.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \> put install.log            嘗試上傳。
putting file install.log as \install.log (440.0 kb/s) (average 440.0 kb/s)
smb: \> ls                    查看,上傳成功。
  .                                   D        0  Wed Apr 27 17:46:55 2016
  ..                                  D        0  Wed Apr 27 17:32:03 2016
  a.txt                               A        0  Tue Apr 26 19:02:57 2016
  install.log                         A    49565  Wed Apr 27 17:46:55 2016

        35418 blocks of size 524288. 23572 blocks available

windows8(192.168.1.10):

訪問192.168.1.1的共享文件夾:

windowstest1

身份驗證:

windowstest2

嘗試創建文件并查看所有者:

windowstest3

使用GUI工具SWAT管理samba

swat是samba的圖形化管理工具,我們可以在配置后通過http來通過網頁配置,并且內嵌幫助文檔,能夠非常直觀的配置samba服務,swat是基于xinetd超級守護進程。
[root@host1 tmp]# yum install xinetd -y            安裝xinetd超級守護進程
[root@host1 tmp]# yum install samba-swat -y        安裝swat程序,主機安裝包名為samba-swat,如果直接輸入swat是找不到包的??!

[root@host1 tmp]#vim /etc/xinetd.d/swat            編輯swat的配置文件。
    # default: off
    # description: SWAT is the Samba Web Admin Tool. Use swat \
    #              to configure your Samba server. To use SWAT, \
    #              connect to port 901 with your favorite web browser.
    service swat
    {
            port            = 901            <---    監聽的端口默認為901。
            socket_type     = stream        <---    socket類型為stream,面向連接的穩定數據傳輸,即為TCP協議。
            wait            = no            
            only_from       = 192.168.1.0            <---只監聽指定范圍內的主機,即限制登陸主機,設置為0.0.0.0 則默認為監聽所有主機。
            user            = root                <---只允許使用指定用戶登錄。
            server          = /usr/sbin/swat        <---指定主程序路徑。
            log_on_failure  += USERID            
            disable         = no            <---開啟swat工具,yes為關閉。
    }
[root@host1 tmp]# service xinetd start        開啟xinetd服務即可,因為swat是由xinetd來管理的。

[root@host1 tmp]# ss -tunl | grep 901        查看901端口號,的確為設置的tcp的901
tcp    LISTEN     0      64                    :::901                  :::*
訪問服務器的901端口:

swat1

進行身份驗證:

swat2

進入圖形設定界面:

swat3

原創文章,作者:Net18_肖肖,如若轉載,請注明出處:http://www.www58058.com/15661

(0)
Net18_肖肖Net18_肖肖
上一篇 2016-04-27
下一篇 2016-04-28

相關推薦

  • Linux的文件系統的基礎目錄、幫助、部分命令介紹

    Linux的文件系統的基礎目錄、幫助、部分命令介紹 目錄 linux基礎目錄 Linux獲取幫助 相關控制命令,翻屏等 部分命令介紹 linux的基礎目錄 Bin: 共所有用戶使用的基本命令,就是二進制程序 Sbin:系統的二進制程序。供管理員使用的 Boot:基本的加載器,引導加載器所依賴的各種靜態文件 Dev:設備文件和特殊文件 其中設備分為兩種類型,字…

    Linux干貨 2016-10-29
  • 程序員小抄大全

    你是否會經常忘記一些CSS中的函數名或是一些屬性名,那個時候,你一定覺得,如果手邊有一個“小抄”(Cheat Sheet)就好了。當然,這個“小抄”不是給你作弊用的,這個“小紙條”就是可以讓你馬上知道那個你最想知道的東西。這個“小抄”上也不需要有所有的東西,就需要那些經常用的就行了?,F在,網上有很多這樣的“小抄”,它們可能是PDF格式的,可能是PNG格式的,…

    Linux干貨 2015-04-03
  • 淺談DNS基本原理以及實現方法(二)

             DNS作為互聯網服務的一個基礎型服務,了解和掌握DNS服務的原理和配置將是每一個運維人員必備的技能,這就如同闖蕩江湖的俠客不但要有的招式,還要懂的運用這些招式的心法一樣,接下來我將從DNS的正反向解析、主從同步、子域授權以及Bind view這四個方面來揭開它神…

    Linux干貨 2015-12-19
  • 初識Linux—-小練習

    1、怎樣更改命令提示符的顏色?     步驟一:通過 echo $PS1 命令顯示當前提示符格式;     步驟二:通過cat /etc/DIR_COLORS 命令,查詢需要顏色的編號;     步驟三:打開.bashrc文件,命令為nano  .bashrc,進入后添加,如圖: &nbs…

    2017-02-18
  • KeepAlived的配置及使用!

    此篇博客主要是和大家共同了解一下keepalived的功能及基礎配置,以便于牢固掌握,此篇博客共分為三個部分;                ⊙ 簡述keepalived的主要功能及安裝環境;           &nb…

    2017-05-13
欧美性久久久久