1. 程式人生 > >linux之samba使用

linux之samba使用

  工作中,很多時候,我匯出檔案,或者上傳檔案的時候經常失敗,報samba fail,但我並不知道samba是幹什麼用的,也老是聽同事說什麼samba沒有掛載,但我基本上不知道什麼是samba,更不要說什麼是掛載了,於是乎,我就各種找資料,終於知道什麼是samba了。在我經歷的三個專案中,都是用samba來實現多臺伺服器之間的檔案共享,而且挺好用的,所以今天寫下這篇部落格,正所謂好記性不如爛筆頭。

  一、什麼是samba

  samba 是基於SMB協議(ServerMessage Block,資訊服務塊)的開源軟體,samba也可以是SMB協議的商標。SMB是一種Linux、UNIX系統上可用於共享檔案和印表機等資源的協議,這種協議是基於Client\Server型的協議,Client端可以通過SMB訪問到Server(伺服器)上的共享資源。當Windows是 Client,CentOS是伺服器時,通過Samba就可以實現window訪問Linux的資源,實現兩個系統間的資料互動。samba服務程式已經成為在Linux系統和Windows系統之間共享檔案的最佳選擇,當然在Linux系統與Linux系統之間的檔案共享也選擇samba。

  二、安裝samba

  我使用的是centos7,直接用yum安裝就可以

yum install samba

  三、配置smb.conf

  smb.conf是服務端的配置檔案,剛安裝的就自帶smb.conf檔案,裡面有很多註釋的行,但實際工作是用不了,所以我們把自帶的檔案備份一個,複製一個簡潔的主配置檔案

mv /etc/samba/smb.conf /etc/samba/smb_bak.conf
cat /etc/samba/smb_bak.conf | grep -v "#"  | grep -v ";" > /etc/samba/smb.conf

  編輯smb.conf檔案,刪除homes、printers、print$三項配置,實際工作用不了,然後再後面加上你的共享檔案配置,最後內容如下:

[global]
        workgroup = SAMBA           #設定 Samba Server 所要加入的工作組或者域。
        security = user             #設定使用者訪問Samba Server的驗證方式,一共有四種驗證方式
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
[database]
        comment = share database     #這個是共享檔案的描述
        path = /data/share           #設定共享資料夾的路徑
        public = no                  #設定是否允許匿名訪問
        writable = yes

  四、建立samba登入使用者

  這個使用者可以直接用Linux使用者,但密碼也需要設定,所以我在這裡新建一個samba專用使用者

useradd smb_root
smbpasswd -a smb_root  #然後輸入兩次密碼就可

  五、建立共享路徑

mkdir -p /data/share
cd /data chmod -R 775 share chown -R smb_root:smb_root share

  六、Windows下訪問共享檔案

  在Windows資源管理器地址上輸入 \\+ip(比如我的samba伺服器IP地址是192.168.1.14,則輸入\\192.168.1.14),登陸samba服務

 

  輸入的剛才新增的samba使用者及密碼就行,比如我的就是smb_root和smb_root,這樣就可以訪問了

 

  可以把這個檔案對映為一個碟符,選中database,點選右鍵,選中對映網路驅動器

 

 

  點選確定就可

  七、Linux下共享檔案

  首先在客戶端安裝支援檔案共享服務的軟體包cifs-utils

yum install cifs-utils

  在Linux客戶端,按照samba服務端的使用者名稱和密碼、共享域的順序將相關的資訊寫入到一個認證檔案中

vim auth.smb
寫入如下內容:
username = smb_root
password = smb_root
domain = ZIJIN

  在客戶端建立共享目錄,把掛載資訊寫入/etc/fstab檔案中

mkdir -p /data/share
vim /etc/fstab
在最後追加一下資訊:
//192.168.1.14/data/share  /data/share  cifs  credentials=/root/auth.smb   0 0

  掛載檔案系統

mount -a

  測試,在服務端的/data/share目錄下新建一個檔案,然後再客戶端檢視,是否能看到,如果能就可以了