Linux下samba的安裝與配置

原文鏈接:https://www.cnblogs.com/chengjian-physique/p/7906704.html

physique

 

隨筆- 203  文章- 0  評論- 33 

Linux下samba的安裝與配置

轉載來源:http://blog.chinaunix.net/uid-28622942-id-3487141.html
一、簡介
    Samba,是在Unix上實現SMB(Server Message Block)的一個工具套件。而SMB通常是windows用來實現共享的,包括文件和打印機等。而Unix上裝上SMB,則使得Unix能夠和windows連接在一起,實現兩者的資源互通。
二、安裝
$rpm -qa | grep samba        #查看系統是否已安裝samba
$yum install samba              #使用yum軟件包管理工具安裝samba
三、常用命令
1.service smb status        #查看smd服務的狀態
2.service smb start           #運行smb服務
3.service smb stop           #停止服務
4.service smb restart       #重啓服務,但在實際中一般不採用
5.service smb reload       #重載服務,在實際中較常用,不用停止服務
四、配置
4.1.基本配置
       samba的主要配置文件放在/etc/samba/smb.conf文件夾下。文件可以分爲兩大部分,第一部分是全局配置,第二部分是局部配置。下面是一個配置文件及相關注釋:
[global]  #全局配置,配置文件以[segname]分段,除了global影響全部段之外,各段之間互不影響
        workgroup = MYGROUP    #samba的工作組
        server string = Samba Server Version %v    #samba的說明信息
        netbios name =Aric    #簡單的說就是計算機名稱
        log file = /var/log/samba/%m.log    #日誌文件存放位置
        max log size = 10    #日誌文件大小,以M爲單位
        security = share    #安全選項,可以是share,user,server,domain安全級別遞增
        encrypt passwords = yes    #密碼是否加密
        smb passwd file = /etc/samba/smbpasswd    #密碼文件存放位置
        username map = /etc/samba/smbusers    #用戶文件存放位置
[share]        #局部配置,[]裏面是段名,也就是我們的共享名
        comment = This is my shared folder.    #該共享的說明
        path = /home/share    #共享路徑
        writeable = yes        #共享文件夾是否可寫
        browseable = yes    #是否可瀏覽
        guest ok = yes        #跟public一樣,是否允許guest用戶
        create mode =0664    #創建文件權限定製
        directory mode=0775    #創建文件夾權限
        valid users=允許訪問該共享的用戶
        invalid usrs=禁止訪問的用戶,root,@group,@表示組    
        admin users=該共享的管理者
        write list=有寫權限的用戶 
       display charset=UTF-8
       unix charset=UTF-8
       dos charset=UTF-8  #這三個是避免亂碼的,dispaly是顯示目錄時的編碼,另外兩個跟名字對應。若dos下爲zh_CN.GB2312.GBK。則3個全部設爲cp936
4.2 配置文件中的詳細解釋
4.2.1 samba的安全級別
   Linux下samba有四種安全級別,即Share、User、Server、Domain,它們的安全級別由低到高,在配置文件中具體由security參數指定。其中,Share級是指用戶不需要賬戶和口令即可登錄服務器;User級是Samba服務器默認的安全級別,是指服務器負責檢查登陸者的賬戶和口令;Server級是指賬戶和口令的檢查由另外的Samba或Windows服務器負責;Domain級是指由一臺Windows NT/2000域服務器負責檢查賬戶和口令。用戶在配置Samba服務器時,可以根據所需要的不同安全等級來具體配置
4.2.2 samba的密碼存放方式
    passdb backend = tdbsam | passdb | smbpasswd 
    backend即用戶後臺。有三種後臺:smbpasswd、tdbsam和ldapsam。Sam即security account manager。
(1).smbpasswd:該方式是使用smb工具smbpasswd給系統用戶(真實用戶或者虛擬用戶)設置一個Samba 密碼,客戶端就用此密碼訪問Samba資源。也就是說用這種方法創建的永和可以是虛擬的,也就是Linux系統中不存在該用戶也可以。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用戶賬號。
一般叫常用的用法是:
$useradd user1
$smbpasswd -a user1    #這裏可以改爲pdbedit -a user1
$輸入user1的共享密碼
$確認user1的共享密碼
(3).ldapsam:基於LDAP賬戶管理方式驗證用戶。首先要建立LDAP服務,設置“passdb backend = ldapsam:ldap://LDAP Server”這個我也不太清楚,就不說了。

4.3.用戶映射
      由於我們在創建samba用戶時必須和系統用戶同名,這就意味着不安全(當然某些人很樂意看到這樣),但是,samba已經解決了這個問題,提供了用戶映射,這個文件在/etc/samba/smbusers,
root=administrator
nobody=guest pcguest
test=prefer you
這樣就Ok了,錢兩行是爲了方便windows用戶使用,最後一行則是遮蓋用戶信息,也就是爲了安全。

4.4. 常用的共享
[homes]共享默認會將用戶的主目錄共享,這是不安全的,所以我們要將其註釋,當然還有[netlogon]

五、常見問題
5.1.提示沒有權限訪問
        前提是我們將security=share,即不要求賬號密碼,這樣還是不能訪問,總是說沒有權限訪問。這有以下幾種原因:
5.1.1 防火牆的問題 
        samba使用的端口在防火牆裏沒有添加例外,導致samba服務不能夠使用,解決方法可以是
$iptables -F        #清除防火牆的規則
也可以通過setup,將samba使用的端口添加例外,最好用第二中方法,畢竟防火牆還要保證系統的安全。
(2)seLinux的問題
        這是系統本身的原因,我們安裝系統的時候安裝了selinux,而selinux禁止網絡上其他計算機對samba上的共享目錄進行寫操作,即使在smb.conf中允許了這項操作,解決方法是:
$setenforce 0
我在這上面可吃了不少苦頭。
(3)共享文件夾權限的問題
        我們共享的路徑本身權限不正確,就是說我們在smb.conf分配的權限是可讀可寫,但是在Linux文件系統下,該共享文件夾卻是隻讀的,所以就出現了問題,我們一般講共享的文件夾在Linux下降權限全部開放。
$chmod 777 /share
5.2.提示用戶名或則密碼不正確
    當我們將安全級別爲user時,就需要輸入用戶名和密碼,但是用戶名密碼都是正確的,但是總是提示錯誤。這是因爲我們在windos下輸入用戶名時,默認是在windows域中,二我們的賬戶是在Linux建立的,所以是不對的,只要將我們Linux主機的域名加載前面就行了。比如Linux下面的user2,我們直接輸入user2可能就不對,我們必須將我們Linux主機的名字加在前面,如
hostname/user2
5.3.NT_STATUS_WRONG_PASSWORD
       當我們在Linux使用
$smbclient //192.168.102.133/share
Enter root's password:此處回車
Domain=[groupname] os=[Unix] Server=[Samba 3.5.10-125.el6]
Server not using user level security and no password supplied
tree connect failed:NT_STATUS_WRONG_PASSWORD
下面是配置文件
[share]
    comment= user share
    path = /home/share
    browseable = yes
    writable = yes
    security = yes
應該不會出錯的,但是就是報錯啊,後來才知道,少了一行
    public =yes
因爲,samba默認是不允許匿名用戶訪問的
5.4.掛載windows共享文件夾,smbmount不存在,smbfs無效的選項
    這裏簡單的提一下,我們可以再一掛載windows下的共享文件夾,做法是先在windows下右擊文件夾,選擇共享選項,然後共享給特定用戶。到Linux下
$ smbmount //windowsIP地址/共享名 掛載點 -o 選項1,選項2
但是提示smbmount不存在,yum也找不到,其實smbmount這個包太老了,已經淘汰了,所以肯定找不到的,及時找到了也不能用。可以用mount代替,
smbmount == mount -t smbfs ???    
其實,這也是不等的,因爲smbfs也淘汰了,現在時代進步太快了,呵呵,smbfs即smb file system 已經由cifs(common internet file system)代替了,所以我們要用mount -t cifs代替。
最後命令式:
mount -t cifs -o username=xxx password=xxx //windowsIP地址/共享名 /mnt/掛載點

A thousand journey is started by taking the first step.

分類: Linux

好文要頂 關注我 收藏該文  

physique
關注 - 20
粉絲 - 121

+加關注

0

0

« 上一篇: Python與其他語言時間戳 
» 下一篇: Shell 環境中的輸入輸出重定向

posted @ 2017-11-27 23:28 physique 閱讀(11148) 評論(0) 編輯 收藏

刷新評論刷新頁面返回頂部

註冊用戶登錄後才能發表評論,請 登錄 或 註冊, 訪問 網站首頁。

【推薦】超50萬C++/C#源碼: 大型實時仿真組態圖形源碼
【推薦】華爲雲·雲創校園套餐9元起,小天鵝音箱等你來拿
【推薦】零基礎輕鬆玩轉雲上產品,獲壕禮加返百元大禮
【推薦】ALIYUN90% | 免認證 9秒註冊阿里雲 即開即用

相關博文:
· Linux下samba的安裝與配置
· linux samba
· Samba
· 服務管理之samba
· Linux下Samba詳解及安裝配置

最新 IT 新聞
· 華爲或從聯發科方採購5G芯片,用於自家低端5G智能手機 
· 2019年APP流量價值評估報告:微信居首 
· 揭祕!在杭州,垃圾分類後,都去哪兒了?如何處理? 
· 一線丨華米科技第二季度營收超10億元 出貨量增長53.7% 
· 2019 年雨果獎公佈 
» 更多新聞...

暱稱: physique 
園齡: 1年9個月 
粉絲: 121 
關注: 20

+加關注

< 2019年8月 >
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

搜索

 

 

常用鏈接

隨筆分類

隨筆檔案

相冊

最新評論

閱讀排行榜

評論排行榜

推薦排行榜

Copyright © 2019 physique

Powered by .NET Core 3.0 Preview 8 on Linux

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章