1. 程式人生 > >網絡共享服務(三)之SAMBA

網絡共享服務(三)之SAMBA

本地用戶 選中 配置 化工 lur 取消 failure -o smb.conf

samba: 早期名為smb, 全稱為Service Message Block,後改名為samba,監聽在 137/udp, 138/udp, 139/tcp, 445/tcp,可以跨平臺實現數據共享,還能掛載遠程目錄到本地目錄

  CIFS: Common Internet File System,Windows各主機之間共享文件系統的協議,類似於linux上的nfs

  NetBIOS: Windows基於主機名實現互相通信的機制;只截取15個字符的主機名

samba在linux上實現三種服務: 默認啟用前兩個服務

  nmbd: 實現netbios協議

  smbd: 實現cifs協議

  winbindd: 實現讓samba工作後能夠將linux加入到ad域(活動目錄中)

一、CentOS6位客戶端,Windows為服務器端

1.服務器端操作

 創建共享目錄
    新建文件夾test
    點選工具 --> 文件夾選項 --> 查看 --> 取消使用簡單文件共享 --> 應用 --> 確定
   右鍵test文件夾 --> 共享和安全 --> 選中共享此文件夾(可以修改共享文件名,比如這裏設為tools,下面會用到) --> 權限 --> 添加 --> 選中test用戶 --> 確定 --> text的權限可以勾上讀取和更改 --> 確定
      windows添加用戶:右鍵我的電腦 --> 管理 --> 本地用戶和組 --> 用戶 --> 右鍵空白區域新增用戶(比如test用戶)

2. 客戶端操作

安裝samba客戶端

yum list samba-client*    //查看samba相關安裝包,默認已安裝客戶端samba-client

3. 客戶端訪問服務器端數據

 3.1. 交互式數據訪問:

客戶端以test用戶連接服務器

samblient -L HOST -U USERNAME
  # smbclient -L 192.168.1.301 -U test  //192.168.1.301為windows服務器ip, test為登錄用戶名

獲取到共享信息後,連接共享文件夾

 smbclient //SERVER/shared_name -U USERNAME  //UNC路徑: \\SERVER\shared_name
  # smbclient //192.168.1.301/tools -U test

連上後打開一個類似於ftp的客戶端工具

smb:\> 

測試上傳數據到服務器

smb:\> lcd /etc
smb:\> put fstab

 3.2. 基於掛載的方式訪問

掛載到/mnt目錄下 

mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD
  # mount -t cifs //192.168.1.301/tools /mnt -o username=test

訪問數據

 ls -l /mnt  //windows上的文件默認都有執行權限 

二、以CentOS6為服務器端,windows作為客戶端

1.服務器端操作:

安裝samba

  # yum -y install samba
samba相關文件組成:
  服務腳本:
   /etc/rc.d/init.d/nmb   /etc/rc.d/init.d/smb
  主配置文件:
    /etc/samba/smb.conf
  samba用戶:  
    賬號:都是系統用戶,/etc/passwd
    密碼:samba服務自有密碼文件
    將系統用戶添加為samba用戶的命令:
       smbpasswd:
          -a Sys_User:添加系統用戶為samba用戶
          -d: 禁用指定用戶賬號
          -e: 啟用指定用戶賬號
          -x: 刪除指定用戶賬號

修改工作組

# cd /etc/samba
# vim smb.conf
  修改workgroup = WORKGROUP  //windows工作組默認為workgroup,CentOS工作組默認為mygrop

添加系統賬號

# useradd smbuser1  //添加系統賬號
# smbpasswd -a smbuser1  //將smbuser1密碼添加到smbuser1賬號中

測試

客戶端windows系統連接服務器:
\\192.168.1.104輸入用戶名和密碼 登錄到用戶的家目錄

三、多個用戶賬號登錄同一個共享目錄

1.服務器端操作:

編輯samba配置文件: /etc/samba/smb.conf

# vim /etc/samba/smb.conf 

最後一行添加自定義共享:

 [shared_name]
  path = /path/to/share_directory  //共享文件路徑
  comment = Comment String      //註釋信息
  guest_ok = {yes|no}  //是否允許來賓賬號訪問
  public = {yes|no}  //是否允許公開
  writable = {yes|no}  //是否可寫
  read only = {yes|no}  //是否只讀
  write list = +GROUP NAME  //哪些組中用戶可寫

比如:

[shared]
        comment = My Shared Testing.
        path = /shared/samba
        guest_ok = yes
        writable = yes

創建共享目錄:

# mkdir /shared/samba
# ls -ld /shared/samba  //smbuser1沒有寫權限
# setfacl -m u:smbuser1:rwx /shared/samba  //設置smbuser1用戶能讀能寫能執行

測試語法:

# testparm

重啟服務:

# service nmb restart;service smb restart;

2. 客戶端操作

安裝samba客戶端:

# yum -y install samba-client

連接服務器:

# smbclient //192.168.1.104/shared -U smbuser1

3. 測試

客戶端連接完服務器後,打開一個類似ftp的客戶端:

smb:\> lcd /etc
smb:\> put fstab  //成功上傳

四、samba圖形化工具: samba-swat

安裝samba-swat

# yum install samba-swat -y

工具介紹:

這個工具是基於web服務提供圖形界面,它自己提供了web服務器,以超級守護進程xinetd代為管理,在/etc/xinetd.d目錄下有個文件swat

打開swat文件

# vim 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  
        socket_type     = stream
        wait            = no
        only_from       = 127.0.0.1  //這裏改為192.168.1.0/24
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = yes  //改為 no
}

重啟xinetd服務

# service xinetd restart 

測試:

  瀏覽器輸入: 192.168.1.104:901

網絡共享服務(三)之SAMBA