
Samba服務在Ubuntu服務器版本中默認并沒有安裝。
軟件包的安裝
在Ubuntu的終端中輸入一下命令:
#sudoapt-getinstallsamba
#sudoapt-getinstallsmbclient
服務器的啟動與關閉
啟動Samba服務器只需執行如下命令:
#sudo/etc/init.d/sambastart
啟動Samba服務器后,可以使用ps命令查看進程:
#ps-aux
可以看到Samba服務會同時啟動兩個服務,其中smbd主要用來管理共享出來的目錄,nmbd主要用來解
析NetBIOS名。在Windows系統中,主機可以被加入一個組中,這樣每個主機都必須有一個名字,這個
名字是用于在網上被標志的名,并非機器的主機名,將其稱為NetBIOS名。其中nmbd進程是隨著smbd
進程啟動而啟動。
關閉Samba服務,使用命令:
#/etc/init.d/sambastop
或者:
#smbcontrolsmbdshutdown-----------此命令只關閉smbd
重新啟動Samba服務器:
#/etc/init.d/sambarestart
3.配置Samba服務
Samba服務器主要配置文件為/etc/samba/,并且可以將NetBIOS名與主機的對應關系寫在
/etc/samba/lmhosts文件中。
(1)在Windows系統中不用輸入密碼訪問Linux共享目錄
在Linux共享一個目錄,將建立好的目錄的設置信息寫入/etc/文件即可。如:若共享/home/share
目錄,要在Windows系統中訪問這個共享的目錄,假設Windows主機的IP為192.168.0.11,Linux主機
的IP為192.168.10,進行如下操作:
#mkdir/home/share
#
將文件中的內容做如下相應修改:
curity=ur改為curity=share
在文件結尾添加如下行:
[share]
comment=thisisLinuxsharedirectory
path=/home/share
public=yes
writable=yes
保存退出,啟動Samba服務:
#/etc/init.d/sambastart
設置完成!
在Windows下訪問共享目錄,可點擊運行,輸入
192.168.0.10share
這樣就能以匿名用戶訪問共享目錄share了。
其中配置文件主要可以分為兩部分:前一部分為GlobalSettings(全局部分),全局部分能夠對主機
的相關信息進行配置,而且能夠配置訪問時是否需要密碼。常用選項有:
workgroup=MSHOME
這部分是Windows主機的工作組明,Windows主機必須在同一個工作組中,
rverstring=%hrver(Samba,Ubuntu)
這個選項是顯示在Windows上的信息,可以自定義,其中%h為Samba配置文件中的變量,代表了主機
名,即使用hostname命令得到的主機名。
logfile=/var/log/samba/log.%m
這里指定了Samba服務的日志文件所在位置,其中%m也是文件的變量,代表了登錄主機的
NetBIOS名。Windows主機的NetBIOS命令可以通過鼠標右鍵打開“我的電腦/屬性/計算機明/更改/其他“來
查看。
maxlogsize=1000
設置日志文件的最大尺寸,大小為KB。
需要注意的是在文件中“#”和“;”都是注釋。
在文件中跌入部分就是共享部分,在此部分中需要將共享的目錄添加到此文件中。此部分的格式
和主要選項如下:
[share]----------在Windows主機中看到的共享文件名,不一定與Linux中共享的文件名一致,
comment=thisisLinuxsharedirectory----------對此目錄的說明
path=/home/share-------Linux系統真實的共享目錄,必須為絕對路徑
public=yes-------是否允許所有人都能夠看到此目錄,no為看不到
writable=yes-------是否允許用戶在此目錄下可寫,no為不可些,如果可寫,還需要目錄具有w權限
readonly=yes--------設置用戶是否只讀
createmode=0700--------如果有可寫權限,建立的文件默認的權限掩碼
directorymode=0755--------如果有可寫權限,建立的目錄默認的權限掩碼
(2)在Windows系統之需要輸入密碼才能訪問Linux共享目錄
在文件中,默認行是:
curity=ur
這行設置了Samba的安全等級,Samba一共可以設置四個安全登記,由底到高分別為:
share:這個選項表示任何人都可以不需要輸入密碼登錄。
ur:這個是Samba的默認級別,要求每個用戶必須輸入密碼才能登錄。
rver:ur級別的密碼都是保存在本機上,而rver級別的密碼和用戶名都保存在另一臺主機上。
domain:這個級別要求網絡里必須有一臺Windows的域控制器,驗證工作由域控制器來完成。
需要注意:只要輸入用戶名和密碼的級別,其用戶名一定首先也是Linux系統內的用戶。
如果將Samba的安全級別設置了ur級別,那么用戶登錄Samba主機必須輸入密碼,此用戶必須是Linux
中的/etc/passwd文件存在的用戶,文件的配置如下:
在文件中的curity=ur下加入:
smbpasswdfile=/etc/samba/smbpasswd
在共享部分添加:
[homes]
comment=HomeDirectories
validurs=%S
其中%S為一個變量,它代表了登錄用戶的用戶名,既認證的用戶登錄后就能進入自己的宿主目錄。然后
在/etc/samba下建立smbpasswd文件并加入用戶:
#touch/etc/samba/smbpasswd
#smbpasswd-aur1
NEWSMBpassword:
RetypenewSMBpassword:
這樣就可以讓ur1登錄Samba主機了。其中smbpasswd命令的格式為:
#smbpasswd[-選項]用戶名
常見選項有:
-a:新添加一個Samba用戶。
-d:禁用一個Samba用戶。
-e:使禁用的Samba用戶解禁。
如果需要對設置進行檢測,我們可以直接使用testparm命令。
(3)在Linux中訪問Windows的共享目錄
在Linux中,可以直接將Windows中的共享目錄掛在到本機中,然后就像操作自己主機上的文件一樣進行
操作。我們可以使用smbclient命令查看指定主機的共享目錄信息。
#smbclient-L//[目標主機IP地址]
當查看到Windows系統中的共享目錄后,可以使用smbmount命令來進行掛載共享的目錄,smbmount
命令的格式為:
#smbmount'Windows主機IP共享的目錄名'掛載點-Ourname
(4)在Linux中訪問Linux主機的共享目錄
跟訪問Windows中的共享目錄一樣,用自己的共享目錄測試如下:
==============================================
=====
Samaba常見的故障排除
1.限定用戶訪問無效
管理員限定了只有用戶ur1才可以訪問共享目錄/sharedoc,測試時卻發現用戶ur2也可以訪問,甚至
所有的用戶都可以訪問!這是一個很容易出錯的問題,我們看看在Samba配置文件/etc/samba/
中的相應設置段:
[sharedoc]
path=/sharedoc
validur=ur1
writable=yes
乍一看沒什么問題,用testparm工具測試一下看看:
#testparm
Loadsmbconfigfilesfrom/etc/samba/
Processingction"[homes]"
Processingction"[sharedoc]"
Unknownparameterencountered:"validur"
Ignoringunknownparameter"validur"
.......
[sharedoc]
path=/sharedoc
readonly=No
testparm是Samba提供的一個十分有用的測試工具,它除顯示Samba所有配置參數默認值外,還能檢測
參數的實際取值,并與Samba管理員所設置的取值進行對比,檢測文件有沒有包含任何無效參
數。
通過測試發現,設置共享資源時,參數“validurs”少寫了個"s“,變成了"validur",結果在讀取配置文
件時檢測為未知參數并忽略了它,這樣這條參數就無效了,也就相當于沒有設置有效用戶,則默認共享目
錄為所有用戶都可以訪問,就出現了前面提到的問題。可見如果不小心設置錯誤,后果是相當嚴重的。
Samba的配置選項語法要求嚴格,建議配置好后用testparm檢測一下看看是否有語法錯誤,以免發生此
種現象。
2.用戶權限設定無效
在解決了限定用戶的問題,又發現明明設置了"writable=yes",賦予ur1寫權限,但ur1在Windows
客戶端卻無法對這個共享目錄進行寫操作。
這里有個概念問題,盡管Samba授予用戶ur1對共享資源具有寫權限,但底層Linux系統許可不允許
ur1在共享資源上添加文件或目錄。這時,唯有更改該目錄的Linux文件權限設置,更改完成后,才可以
進行前述的寫入操作。也就是說,Linux系統中用戶ur1對此目錄的權限與Samba服務中授予用戶ur1
對此目錄的操作權限要取一個交集!
觀察共享目錄/sharedoc的權限:
#ls-ld/sharedoc
drwxr-xr-x2rootroot40962月623:54/sharedoc
在根目錄下只有root只有寫操作,root創建的目錄/sharedoc自然所有者為root,所屬組為root管理員,
看到用戶ur1并不是所屬組的成員更不是所有者,屬于其他人(others),其他成員只具備"r-x"即可讀
可執行的權限,并不具備寫權限,所以即便Samba中授權用戶ur1有寫權限也無濟于事。
如果要授予ur1可以進行寫操作,最簡單的辦法就是賦予其他人對目錄具備寫權限:
#chmodo+w/sharedoc
正確的解決方法最好是將設置權限的用戶加入到目錄對應的組中,對組授權,進行統一管理。
3.解決中文亂碼問題
在Windows中看到Linux的共享文件和目錄中文都顯示亂碼。
要解決這個問題,首先執行命令locale查看一下系統的字符集:
#locale
LANG=zh_18030
LC_CTYPE="zh_18030"
LC_NUMERIC="zh_18030"
LC_TIME="zh_18030"
.........
然后根據locale查到的字符集設置,修改配置文件中的"[Global]"全局參數設置段:
(1)如果locale是zh_-8,添加如下三行設置:
displaychart=UTF-8
unixchart=UTF-8
doschart=UTF-8
(2)如果locale是zh_、zh_2312或zh_18030,添加如下三行設置:
displaychart=cp936
unixchart=cp936
doschart=cp936
重新啟動Samba服務,則無論從Windows網上鄰居還是直接用DOS命令查詢,均可顯示正常中文。
4.如何不顯示隱藏文件
如果訪問宿主目錄,那些以"."開頭的隱藏文件都顯示得一清二楚,那么就有可能一個誤操作把重要的配置
文件刪除了,這是很危險的。
要讓隱藏文件不顯示,需要在Samba配置文件的[homes]段添加如下設置:
vetofiles=/.*/
"vetofiles"參數為設定禁止文件,指定了既看不見又不能訪問的文件和目錄列表,列表中每個條目必須用
斜杠(/)分開,星號(*)和問號(?)通配符能夠用于指定多個文件和目錄。所以"/.*/"就表示禁止所有以
"."開頭的文件。
同時還可以做其他一些限定,如Samba所有共享目錄中都禁止顯示包含詞Windows的任何文件,以".exe"
結尾的任何文件和包含詞bill的任何目錄,可以在[Global]段添加如下行:
vetofiles=/*Windows*/*.exe/*bill/
需要注意的是:
(1)如果要禁止顯示隱藏文件和包含詞newfile的文件,不能用如下的書寫方式:
vetofiles=/.*/
vetofiles=/*newfile*/
這樣設置,第一行的禁止顯示隱藏文件將不能生效,必須寫成:
vetofiles=/.*/*newfile*/
(2)設置"vetofiles"參數會影響Samba的性能,因為在列出文件和查詢期間,掃描文件和目錄時,為了
匹配,Samba將被迫搜尋檢查所有的文件和目錄。
Samba的故障一般排除方法如下(參考):
1.確定故障的癥狀。可能會有人告訴你癥狀或你觀察到第一手的癥狀。
2.因為涉及的是網絡系統,確定故障發生在本地還是遠程,癥狀經常會幫助你做決定,或建議能夠先進行
測試,以便決定。
3.決定了故障所在的位置后,就集中用一套標準測試來確定故障的原因,并嘗試消除癥狀,反復進行,直
到解決問題。
有關診斷Samba和Windows客戶之間故障的工具:
smbclient:檢驗可以訪問的Samba服務器以及要求的共享已被定義。
smbstatus:檢查水正對Samba服務器打開連接,在訪問什么共享。
nmblookup:檢測網絡上的注冊名稱。
DOSnetview命令:從Windows系統檢查服務器上都提供哪些共享。
DOSnetstat:檢查NetBIOS名稱、適配器狀態信息等。
tcpdump:捕獲網絡文件信息包,檢查Windows客戶端和服務器的對話。
Ethereal:詳細分析信息包,檢查Windows客戶端和Samba之間出現的故障。
本文發布于:2023-03-13 00:44:39,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167863947926989.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:默認共享.doc
本文 PDF 下載地址:默認共享.pdf
| 留言與評論(共有 0 條評論) |