(1)share:訪問(wèn)Samba服務(wù)器共享資源時(shí)不需要輸入用戶(hù)名和密碼,屬于匿名訪問(wèn)。
成都創(chuàng)新互聯(lián)公司于2013年開(kāi)始,先為新賓等服務(wù)建站,新賓等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為新賓企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
(2)user:訪問(wèn)Samba服務(wù)器共享資源時(shí)需要輸入用戶(hù)名和密碼,認(rèn)證用戶(hù)來(lái)源為Samba服務(wù)器本機(jī)。
(3)server:訪問(wèn)Samba服務(wù)器共享資源時(shí)需要輸入用戶(hù)名和密碼,認(rèn)證用戶(hù)來(lái)源為另一臺(tái)Samba服務(wù)器或Windows服務(wù)器。
設(shè)置用戶(hù)訪問(wèn)Samba Server的驗(yàn)證方式,一共有四種驗(yàn)證方式。默認(rèn)是第一種。
share:用戶(hù)訪問(wèn)Samba Server不需要提供用戶(hù)名和口令, 安全性能較低。
2. user:Samba Server共享目錄只能被授權(quán)的用戶(hù)訪問(wèn),由Samba Server負(fù)責(zé)檢查賬號(hào)和密碼的正確性。賬號(hào)和密碼要在本Samba Server中建立。SAMBA文件共享服務(wù)
3.server:依靠其他Windows NT/2000或Samba Server來(lái)驗(yàn)證用戶(hù)的賬號(hào)和密碼,是一種代理驗(yàn)證。此種安全模式下,系統(tǒng)管理員可以把所有的Windows用戶(hù)和口令集中到一個(gè)NT系統(tǒng)上,使用Windows NT進(jìn)行Samba認(rèn)證, 遠(yuǎn)程服務(wù)器可以自動(dòng)認(rèn)證全部用戶(hù)和口令,如果認(rèn)證失敗,Samba將使用用戶(hù)級(jí)安全模式作為替代的方式。
4.domain:域安全級(jí)別,使用主域控制器(PDC)來(lái)完成認(rèn)證。
二、安裝
$rpm -qa | grep samba #查看系統(tǒng)是否已安裝samba
$yum install samba #使用yum軟件包管理工具安裝samba
三、常用命令
1.service smb status #查看smd服務(wù)的狀態(tài)
2.service smb start #運(yùn)行smb服務(wù)
3.service smb stop #停止服務(wù)
4.service smb restart #重啟服務(wù),但在實(shí)際中一般不采用
5.service smb reload #重載服務(wù),在實(shí)際中較常用,不用停止服務(wù)
四、配置
4.1.基本配置
samba的主要配置文件放在/etc/samba/smb.conf文件夾下。文件可以分為兩大部分,第一部分是全局配置,第二部分是局部配置。下面是一個(gè)配置文件及相關(guān)注釋?zhuān)?/p>
[global] #全局配置,配置文件以[segname]分段,除了global影響全部段之外,各段之間互不影響
workgroup = MYGROUP #samba的工作組
server string = Samba Server Version %v #samba的說(shuō)明信息
netbios name =Aric #簡(jiǎn)單的說(shuō)就是計(jì)算機(jī)名稱(chēng)
log file = /var/log/samba/%m.log #日志文件存放位置
max log size = 10 #日志文件大小,以M為單位
security = share #安全選項(xiàng),可以是share,user,server,domain安全級(jí)別遞增
encrypt passwords = yes #密碼是否加密
smb passwd file = /etc/samba/smbpasswd #密碼文件存放位置
username map = /etc/samba/smbusers #用戶(hù)文件存放位置
[share] #局部配置,[]里面是段名,也就是我們的共享名
comment = This is my shared folder. #該共享的說(shuō)明
path = /home/share #共享路徑
writeable = yes #共享文件夾是否可寫(xiě)
browseable = yes #是否可瀏覽
guest ok = yes #跟public一樣,是否允許guest用戶(hù)
create mode =0664 #創(chuàng)建文件權(quán)限定制
directory mode=0775 #創(chuàng)建文件夾權(quán)限
valid users=允許訪問(wèn)該共享的用戶(hù)
invalid usrs=禁止訪問(wèn)的用戶(hù),root,@group,@表示組
admin users=該共享的管理者
write list=有寫(xiě)權(quán)限的用戶(hù)
display charset=UTF-8
unix charset=UTF-8
dos charset=UTF-8 #這三個(gè)是避免亂碼的,dispaly是顯示目錄時(shí)的編碼,另外兩個(gè)跟名字對(duì)應(yīng)。若dos下為zh_CN.GB2312.GBK。則3個(gè)全部設(shè)為cp936
4.2 配置文件中的詳細(xì)解釋
4.2.1 samba的安全級(jí)別
Linux下samba有四種安全級(jí)別,即Share、User、Server、Domain,它們的安全級(jí)別由低到高,在配置文件中具體由security參數(shù)指定。其中,Share級(jí)是指用戶(hù)不需要賬戶(hù)和口令即可登錄服務(wù)器;User級(jí)是Samba服務(wù)器默認(rèn)的安全級(jí)別,是指服務(wù)器負(fù)責(zé)檢查登陸者的賬戶(hù)和口令;Server級(jí)是指賬戶(hù)和口令的檢查由另外的Samba或Windows服務(wù)器負(fù)責(zé);Domain級(jí)是指由一臺(tái)Windows NT/2000域服務(wù)器負(fù)責(zé)檢查賬戶(hù)和口令。用戶(hù)在配置Samba服務(wù)器時(shí),可以根據(jù)所需要的不同安全等級(jí)來(lái)具體配置
4.2.2 samba的密碼存放方式
passdb backend = tdbsam | passdb | smbpasswd
backend即用戶(hù)后臺(tái)。有三種后臺(tái):smbpasswd、tdbsam和ldapsam。Sam即security account manager。
(1).smbpasswd:該方式是使用smb工具smbpasswd給系統(tǒng)用戶(hù)(真實(shí)用戶(hù)或者虛擬用戶(hù))設(shè)置一個(gè)Samba 密碼,客戶(hù)端就用此密碼訪問(wèn)Samba資源。也就是說(shuō)用這種方法創(chuàng)建的永和可以是虛擬的,也就是Linux系統(tǒng)中不存在該用戶(hù)也可以。smbpasswd存放在/etc/samba中,有時(shí)需要手工創(chuàng)建該文件。
(2).tdbsam:使用數(shù)據(jù)庫(kù)文件創(chuàng)建用戶(hù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)文件叫passdb.tdb,在/etc/samba中。passdb.tdb用戶(hù)數(shù)據(jù)庫(kù)可使用smbpasswd –a創(chuàng)建Samba用戶(hù),要?jiǎng)?chuàng)建的Samba用戶(hù)必須先是系統(tǒng)用戶(hù)。也可使用pdbedit創(chuàng)建Samba賬戶(hù)。pdbedit參數(shù)很多,列出幾個(gè)主要的:
pdbedit –a username:新建Samba賬戶(hù),必須先存在該系統(tǒng)用戶(hù)
pdbedit –x username:刪除Samba賬戶(hù)。
pdbedit –L:列出Samba用戶(hù)列表,讀取passdb.tdb數(shù)據(jù)庫(kù)文件。
pdbedit –Lv:列出Samba用戶(hù)列表詳細(xì)信息。
pdbedit –c “[D]” –u username:暫停該Samba用戶(hù)賬號(hào)。
pdbedit –c “[]” –u username:恢復(fù)該Samba用戶(hù)賬號(hào)。
一般叫常用的用法是:
$useradd user1
$smbpasswd -a user1 #這里可以改為pdbedit -a user1
$輸入user1的共享密碼
$確認(rèn)user1的共享密碼
(3).ldapsam:基于LDAP賬戶(hù)管理方式驗(yàn)證用戶(hù)。首先要建立LDAP服務(wù),設(shè)置“passdb backend = ldapsam:ldap://LDAP Server”這個(gè)我也不太清楚,就不說(shuō)了。
4.3.用戶(hù)映射
由于我們?cè)趧?chuàng)建samba用戶(hù)時(shí)必須和系統(tǒng)用戶(hù)同名,這就意味著不安全(當(dāng)然某些人很樂(lè)意看到這樣),但是,samba已經(jīng)解決了這個(gè)問(wèn)題,提供了用戶(hù)映射,這個(gè)文件在/etc/samba/smbusers,
root=administrator
nobody=guest pcguest
test=prefer you
這樣就Ok了,錢(qián)兩行是為了方便windows用戶(hù)使用,最后一行則是遮蓋用戶(hù)信息,也就是為了安全。
4.4. 常用的共享
[homes]共享默認(rèn)會(huì)將用戶(hù)的主目錄共享,這是不安全的,所以我們要將其注釋?zhuān)?dāng)然還有[netlogon]
五、常見(jiàn)問(wèn)題
5.1.提示沒(méi)有權(quán)限訪問(wèn)
前提是我們將security=share,即不要求賬號(hào)密碼,這樣還是不能訪問(wèn),總是說(shuō)沒(méi)有權(quán)限訪問(wèn)。這有以下幾種原因:
5.1.1 防火墻的問(wèn)題
samba使用的端口在防火墻里沒(méi)有添加例外,導(dǎo)致samba服務(wù)不能夠使用,解決方法可以是
$iptables -F #清除防火墻的規(guī)則
也可以通過(guò)setup,將samba使用的端口添加例外,最好用第二中方法,畢竟防火墻還要保證系統(tǒng)的安全。
(2)seLinux的問(wèn)題
這是系統(tǒng)本身的原因,我們安裝系統(tǒng)的時(shí)候安裝了selinux,而selinux禁止網(wǎng)絡(luò)上其他計(jì)算機(jī)對(duì)samba上的共享目錄進(jìn)行寫(xiě)操作,即使在smb.conf中允許了這項(xiàng)操作,解決方法是:
$setenforce 0
我在這上面可吃了不少苦頭。
(3)共享文件夾權(quán)限的問(wèn)題
我們共享的路徑本身權(quán)限不正確,就是說(shuō)我們?cè)趕mb.conf分配的權(quán)限是可讀可寫(xiě),但是在Linux文件系統(tǒng)下,該共享文件夾卻是只讀的,所以就出現(xiàn)了問(wèn)題,我們一般講共享的文件夾在Linux下降權(quán)限全部開(kāi)放。
$chmod 777 /share
5.2.提示用戶(hù)名或則密碼不正確
當(dāng)我們將安全級(jí)別為user時(shí),就需要輸入用戶(hù)名和密碼,但是用戶(hù)名密碼都是正確的,但是總是提示錯(cuò)誤。這是因?yàn)槲覀冊(cè)趙indos下輸入用戶(hù)名時(shí),默認(rèn)是在windows域中,二我們的賬戶(hù)是在Linux建立的,所以是不對(duì)的,只要將我們Linux主機(jī)的域名加載前面就行了。比如Linux下面的user2,我們直接輸入user2可能就不對(duì),我們必須將我們Linux主機(jī)的名字加在前面,如
hostname/user2
5.3.NT_STATUS_WRONG_PASSWORD
當(dāng)我們?cè)贚inux使用
$smbclient //192.168.102.133/share
Enter root's password:此處回車(chē)
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
應(yīng)該不會(huì)出錯(cuò)的,但是就是報(bào)錯(cuò)啊,后來(lái)才知道,少了一行
public =yes
因?yàn)椋瑂amba默認(rèn)是不允許匿名用戶(hù)訪問(wèn)的
5.4.掛載windows共享文件夾,smbmount不存在,smbfs無(wú)效的選項(xiàng)
這里簡(jiǎn)單的提一下,我們可以再一掛載windows下的共享文件夾,做法是先在windows下右擊文件夾,選擇共享選項(xiàng),然后共享給特定用戶(hù)。到Linux下
$ smbmount //windowsIP地址/共享名 掛載點(diǎn) -o 選項(xiàng)1,選項(xiàng)2
但是提示smbmount不存在,yum也找不到,其實(shí)smbmount這個(gè)包太老了,已經(jīng)淘汰了,所以肯定找不到的,及時(shí)找到了也不能用。可以用mount代替,
smbmount == mount -t smbfs ???
其實(shí),這也是不等的,因?yàn)閟mbfs也淘汰了,現(xiàn)在時(shí)代進(jìn)步太快了,呵呵,smbfs即smb file system 已經(jīng)由cifs(common internet file system)代替了,所以我們要用mount -t cifs代替。
最后命令式:
mount -t cifs -o username=xxx password=xxx //windowsIP地址/共享名 /mnt/掛載點(diǎn)