linux 安裝samba


常用指令

rpm -qa | grep samba        #查看系統是否已安裝samba

service smb status        #查看smd服務的狀態

service smb start           #運行smb服務

service smb stop           #停止服務

service smb restart       #重啟服務,但在實際中一般不采用

service smb reload       #重載服務,在實際中較常用,不用停止服務

 

安裝 yum install samba

 

基本配置

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    #用戶文件存放位置

'''這個局部配置是給個人配置的,如果采用默認的home,則無需配置這個'''

[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= username      #允許訪問該共享的用戶,多個用戶用逗號分開,也可以添加組
        invalid usrs=root,@group,@表示組  # 禁止訪問的用戶     
        admin users=admin  #該共享的管理者
        write list=username   #有寫權限的用戶 
       display charset=UTF-8
       unix charset=UTF-8
       dos charset=UTF-8  #這三個是避免亂碼的,dispaly是顯示目錄時的編碼,另外兩個跟名字對應。若dos下為zh_CN.GB2312.GBK。則3個全部設為cp936

 

配置文件中的詳細解釋

1、samba的安全級別

Linux下samba有四種安全級別,即Share、User、Server、Domain,它們的安全級別由低到高,在配置文件中具體由security參數指定。其中,Share級是指用戶不需要賬戶和口令即可登錄服務器;User級是Samba服務器默認的安全級別,是指服務器負責檢查登陸者

賬戶和口令;Server級是指賬戶和口令的檢查由另外的Samba或Windows服務器負責;Domain級是指由一台Windows NT/2000域服務器負責檢查賬戶和口令。用戶在配置Samba服務器時,可以根據所需要的不同安全等級來具體配置

 

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的共享密碼

 

用戶映射

由於我們在創建samba用戶時必須和系統用戶同名,這就意味着不安全(當然某些人很樂意看到這樣),但是,samba已經解決了這個問題,提供了用戶映射,這個文件在/etc/samba/smbusers下

root=administrator  # 這個就是將創建的用戶名映射到系統的用戶名上,這樣影藏了真實的用戶名,比如系統管理員權限的用戶名,其他人看到映射后的用戶名也不會知道這個用戶名是什么樣的

nobody=guest pcguest

test=prefer you

這樣就Ok了,錢兩行是為了方便windows用戶使用,最后一行則是遮蓋用戶信息,也就是為了安全。

 

常用的共享

[homes]共享默認會將用戶的主目錄共享,這是不安全的,所以我們要將其注釋,當然還有[netlogon]。但是也可以使用,當用戶輸入用戶名和密碼后,只能看到屬於自己的文件夾並訪問,

 

常見問題

1、提示沒有權限訪問

前提是我們將security=share,即不要求賬號密碼,這樣還是不能訪問,總是說沒有權限訪問。這有以下幾種原因:

 

2、防火牆的問題 

samba使用的端口在防火牆里沒有添加例外,導致samba服務不能夠使用

解決方法可以是   iptables -F        #清除防火牆的規則

也可以通過setup,將samba使用的端口添加例外,最好用第二中方法,畢竟防火牆還要保證系統的安全。

 

3、seLinux的問題

這是系統本身的原因,我們安裝系統的時候安裝了selinux,而selinux禁止網絡上其他計算機對samba上的共享目錄進行寫操作,即使在smb.conf中允許了這項操作

解決方法是:  setenforce 0  # 如果出現自己的文件夾沒有權限訪問,但是權限已經開了,不妨試試這個

 

4、共享文件夾權限的問題

我們共享的路徑本身權限不正確,就是說我們在smb.conf分配的權限是可讀可寫,但是在Linux文件系統下,該共享文件夾卻是只讀的,所以就出現了問題,我們一般講共享的文件夾在Linux下降權限全部開放。

使用這條指令,將文件夾的權限開放  chmod 777 /share

 

5、提示用戶名或則密碼不正確

當我們將安全級別為user時,就需要輸入用戶名和密碼,但是用戶名密碼都是正確的,但是總是提示錯誤。這是因為我們在windos下輸入用戶名時,默認是在windows域中,二我們的賬戶是在Linux建立的,所以是不對的,只要將我們Linux主機的域名加載前面就行了。比

如Linux下面的user2,我們直接輸入user2可能就不對,我們必須將我們Linux主機的名字加在前面,如 hostname/user2

 

6、NT_STATUS_WRONG_PASSWORD

我們在Linux使用  smbclient //192.168.102.133/share # 這里的ip地址是測試時候本機的地址,出現報錯則用localhost

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默認是不允許匿名用戶訪問的

 

windows提示無法多用戶加載

net use * /delete /y # 在windows命令行中輸入這條指令即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM