成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

出于各種目的 輕松設(shè)置Samba

運(yùn)維 系統(tǒng)運(yùn)維
Samba 使用一種人類(lèi)可讀的文件管理和存儲(chǔ)其配置參數(shù),因此配置 Samba 所需的最精密的工具就是文本編輯器。了解配置文件是如何構(gòu)造的,Samba 如何與網(wǎng)絡(luò)交互,如何配置日志,如何使用 Samba 調(diào)試問(wèn)題。

 在本文中,學(xué)習(xí)以下概念:

  • 瀏覽 Samba 服務(wù)器配置文件結(jié)構(gòu)
  • 使用 Samba 變量和配置參數(shù)
  • 識(shí)別對(duì) Server Message Block (SMB)/Common Internet File System (CIFS) 使用的關(guān)鍵 TCP/User Datagram Protocol (UDP) 端口
  • 配置 Samba 日志
  • 使用 Samba 診斷和調(diào)試問(wèn)題

Samba 配置文件

與大部分 UNIX 守護(hù)進(jìn)程一樣,Samba 是通過(guò)人類(lèi)可讀的文本文件配置的,而非通過(guò)一個(gè)用于編輯二進(jìn)制文件的圖形工具。最重要的配置文件稱(chēng)為 smb.conf,它包含 Samba 在您的環(huán)境中運(yùn)行所需的所有參數(shù)。

注意:盡管 smb.conf 是設(shè)計(jì)為通過(guò)文本編輯器編輯的,Samba 團(tuán)隊(duì)開(kāi)發(fā)出了一個(gè)基于 web 的工具,名為 Samba Web Administration Tool。另外也有 webmin 等其他工具。重要的是要記住,在運(yùn)行這些工具之前或之后,您仍然可以編輯 smb.conf,因?yàn)槟诓僮饕粋€(gè)文本文件。

Samba 的配置文件有一個(gè)相對(duì)簡(jiǎn)單的格式,使用三個(gè)不同的結(jié)構(gòu):

  • Sections。Sections 將配置文件分成獨(dú)立的部分。例如,一個(gè)文件共享有其自己的區(qū)域。
  • Parameters。 Parameters 是鍵值對(duì)。鍵是眾所周知的屬性,比如 “read only”。
  • Comments。Comments 允許您對(duì)配置文件做注解,而不影響不配置,比如指示記載共享信息的服務(wù)臺(tái)票證。

Sections

構(gòu)建您自己的提要您可以構(gòu)建一個(gè) RSS、Atom 或 HTML 提要,以便在我們添加新文章或更新內(nèi)容時(shí)收到通知。訪問(wèn)developerWorks RSS 提要。選擇 Linux 作為專(zhuān)區(qū),Articles 作為類(lèi)型,輸入 Linux Professional Institute 作為關(guān)鍵字。然后選擇您想要的提要類(lèi)型。Sections 將配置文件分成不同的部分。您可以將 section 名包含在方括號(hào)([])中來(lái)開(kāi)始一個(gè) section。本 section 將持續(xù)到下一 section 被定義或達(dá)到文件的結(jié)尾。

有三個(gè) section 名具有特殊的含義:

  • global。該 section 中的所有內(nèi)容都適用于整個(gè)服務(wù)器。如有需要,可在共享級(jí)別覆蓋 global 部分中的配置項(xiàng)。
  • homes。homes 部分充當(dāng)所有用戶共享的模板,且 Samba 負(fù)責(zé)將用戶名映射到該部分中的配置,每次您想讓用戶進(jìn)入其主目錄時(shí)都幾乎無(wú)需配置獨(dú)立的共享。
  • printers。該部分類(lèi)似于 homes,區(qū)別在于它用于打印機(jī)。

如果使用的 section 名不是上述之一,那么會(huì)被看作是文件或打印機(jī)共享。

當(dāng)針對(duì)特定共享名的一個(gè)連接請(qǐng)求進(jìn)入 Samba 時(shí),守護(hù)進(jìn)程尋找具有該名稱(chēng)的、會(huì)定義該共享的屬性的 section。如果未找到這個(gè) section,Samba 瀏覽系統(tǒng)上的用戶列表,看看連接是否是指一個(gè)用戶。如果不是,Samba 查詢系統(tǒng)打印機(jī)列表,看具有該名稱(chēng)的打印機(jī)是否存在。如果連接匹配用戶,則使用 homes 部分的配置。如果打印機(jī)匹配,則使用 printers 部分。在所有情況下,區(qū)域級(jí)配置覆蓋 global 配置部分。

如果上述情況都不匹配,還有最后一項(xiàng)檢查。如果配置了默認(rèn)服務(wù),則使用該服務(wù)。如果沒(méi)有,一個(gè)錯(cuò)誤會(huì)傳回客戶端。默認(rèn)情況下,不配置默認(rèn)服務(wù),因此不正確的共享名會(huì)導(dǎo)致錯(cuò)誤。

Parameters

Parameters 采用的形式是 key = value,即將 value 賦給 key。鍵都記錄在 smb.conf 手冊(cè)頁(yè)中。Samba 配置很大程度上就是了解實(shí)現(xiàn)想要的行為所需的鍵并確定要使用的適當(dāng)?shù)逆I。

Parameters 一般將字符串作為值。Samba 支持宏,允許您根據(jù)共享名或用戶輸入等項(xiàng)目改變參數(shù)的值。例如,homes 部分默認(rèn)設(shè)置為用戶的 UNIX 主目錄,但是您可以使用宏將該參數(shù)用于任何位置,并在連接時(shí)替換文件路徑中的用戶名。宏以 % 字符開(kāi)頭,會(huì)在需要時(shí)加以討論。

如果一個(gè)參數(shù)的值必須擴(kuò)展到兩行或更多行,除最后一行的所有行必須以反斜杠(\)結(jié)束,就像一個(gè) UNIX shell。

Comments

Comments 以分號(hào)(;)或散列字符(哈希符號(hào)或 #)開(kāi)頭。Comments 可用于解釋項(xiàng)目原由、跟蹤變更或顯示 section 邊界。

配置示例

清單 1 顯示 smb.conf 文件示例,說(shuō)明文件的不同組成部分。

清單 1. 配置文件示例

# This is a comment
; So is this
# Remember that all shares need to be entered in the Wiki! -Opsteam
[global]
workgroup = BIGCO
# %v gets expanded to the version of Samba
server string = Samba Server Version %v
# By default any file starting with . will have the hidden attribute set
hide dot files = yes
# Home directories come from the UNIX password file
# anyone matching a user will use this section
[homes]
comment = Home directories
# dot files will be hidden because it's a global
[printers]
comment = System printers
printable = yes
# A share that everyone can see
[projecta]
path = /var/spool/projects/projecta
# Override the global version of hiding dot files
hide dot files = no

對(duì)于該配置示例特別需要注意的是:

  • 使用了兩種不同類(lèi)型的注釋。一個(gè)以哈希符號(hào)開(kāi)頭,另一個(gè)以分號(hào)開(kāi)頭。
  • 該文件定義了一個(gè)名為 projecta 的共享。任何其他共享將自動(dòng)通過(guò)系統(tǒng)上定義的用戶和打印機(jī)予以創(chuàng)建。
  • server string 參數(shù)將 %v 宏作為其值的一部分。在運(yùn)行時(shí),%v 將被替換為 Samba 的版本。
  • 在全局級(jí)別,hide dot files 被設(shè)置為 yes,但在 projecta 共享內(nèi)被設(shè)置為 no。主目錄使用 homes 部分中的配置,因此會(huì)隱藏其 dot 文件(比如 .profile)。projecta 文件的 dot 文件可見(jiàn)。

Samba 網(wǎng)絡(luò)交互

Samba 是通過(guò) IP 運(yùn)行的一項(xiàng)網(wǎng)絡(luò)服務(wù),因而它可以與網(wǎng)絡(luò)上也在使用 IP 的其他主機(jī)通信。作為一名 Samba 管理員,您需要理解 Samba 服務(wù)在網(wǎng)絡(luò)上的運(yùn)作方式,以便解決連接問(wèn)題。

在較高的級(jí)別,您可以將 Samba 看作是提供三種不同的網(wǎng)絡(luò)服務(wù):

  • 文件和打印共享。提供文件和打印機(jī)給其他網(wǎng)絡(luò)服務(wù)并在其他機(jī)器上使用這些服務(wù)
  • 名稱(chēng)服務(wù)。加入 Microsoft 網(wǎng)絡(luò)所需的名稱(chēng)解析服務(wù)
  • 域服務(wù)。Samba 可取代各種 Microsoft 服務(wù)器角色,比如舊的域控制器,并與較新的 Active Directory Domain Services (AD DS) 服務(wù)器集成

文件和打印共享

文件和打印共享在 smbd 內(nèi)實(shí)現(xiàn),它是 Samba 守護(hù)進(jìn)程之一。Microsoft 在初次涉足 IP 時(shí)其文件共享使用了經(jīng)由 TCP 的基本網(wǎng)絡(luò)輸入/輸出系統(tǒng)(NetBIOS)。該方法使用 TCP 端口 139 將 NetBIOS 封裝在 TCP 會(huì)話內(nèi)。

NetBIOS 協(xié)議包括以下幾個(gè)特性。TCP 端口 139 僅用于會(huì)話服務(wù),即文件傳輸和消息解析。在該端口上不處理名稱(chēng)查找服務(wù)。

NetBIOS over TCP 有效運(yùn)作,但是 NetBIOS 與 TCP 提供的會(huì)話和可靠性功能之間有重疊。經(jīng)過(guò)一些微小的更改之后,就可以在 TCP 之上運(yùn)行 SMB/CIFS 了。該方法被稱(chēng)為直接宿主,用于簡(jiǎn)化協(xié)議。直接宿主發(fā)生在 TCP 端口 445 上。

當(dāng)從協(xié)議集中刪除 NetBIOS 時(shí),Microsoft 需要另一種方式來(lái)處理名稱(chēng)查找。Domain Name System (DNS) 自然是一個(gè)選擇,它是 DNS 形成 AD DS 基礎(chǔ)的原因。

默認(rèn)情況下,Samba 監(jiān)聽(tīng)端口 139 和 445。您可以使用 smb ports 全局參數(shù)更改這個(gè)行為。例如,smb ports = 445 告訴 Samba 僅監(jiān)聽(tīng)端口 445。您可以讓 Samba 監(jiān)聽(tīng)任何您想要監(jiān)聽(tīng)的端口,不過(guò)必須告訴想要連接的任何客戶端使用非標(biāo)準(zhǔn)端口。

如果您不確定 Samba 在監(jiān)聽(tīng)哪些端口,可以使用 netstat 命令查明。清單 2 顯示運(yùn)行中的該命令。

清單 2. 使用 netstat 查找 SMB 在監(jiān)聽(tīng)哪個(gè)端口

# netstat -antp | grep smbd
# netstat -antp | grep smb
tcp 0 0 :::445 :::* LISTEN 2830/smbd
tcp 0 0 ::ffff:192.168.1.143:445 ::ffff:192.168.1.147:4724 ESTABLISHED 2877/smbd

清單 2 顯示運(yùn)行的 netstat 命令,通過(guò) grep 為字符串 smb 篩選了輸出。使用的 netstat 選項(xiàng)以數(shù)字格式(-n)顯示所有(-a)TCP(-t)連接,以及所負(fù)責(zé)進(jìn)程(-p)的名稱(chēng)。該輸出顯示兩行:第一行包含字符串 LISTEN,這表示守護(hù)進(jìn)程在監(jiān)聽(tīng)傳入的連接。這里守護(hù)進(jìn)程在監(jiān)聽(tīng)端口 445。第二行顯示 ESTABLISHED 連接,其中 192.168.1.147 連接到本地主機(jī)(192.168.1.143)上的端口 445。因此,通過(guò) 清單 2 中的輸出,您可以總結(jié)出 smbd 僅在監(jiān)聽(tīng)端口 445,且連接了一個(gè)客戶端。

名稱(chēng)服務(wù)

NetBIOS 提供一個(gè)名稱(chēng)服務(wù)層,負(fù)責(zé)網(wǎng)絡(luò)瀏覽和名稱(chēng)查找。例如,通過(guò)在 UDP 端口 137 上使用 NetBIOS 名稱(chēng)服務(wù)請(qǐng)求,解析出了主機(jī) SERVER1 的 IP 地址。對(duì)支持角色(比如主瀏覽器)的瀏覽和選擇發(fā)生在 UDP 端口 138,或稱(chēng)為數(shù)據(jù)報(bào)服務(wù)端口。名稱(chēng)服務(wù)是在 nmbd 守護(hù)進(jìn)程中實(shí)現(xiàn)的。

重要的是要注意,名稱(chēng)服務(wù)使用 UDP 而非 TCP。UDP 數(shù)據(jù)包無(wú)連接,可廣播到所有主機(jī),而非單一單播流。使用 UDP 的播放功能,就更容易在網(wǎng)絡(luò)上處理 NetBIOS 名稱(chēng)服務(wù)。

Samba 版本 3 沒(méi)有任何參數(shù)用來(lái)控制 nmbd 在監(jiān)聽(tīng)哪些端口,但是 Samba 版本 4 實(shí)現(xiàn)了 nbt port 和 dgram port 全局參數(shù),它們分別控制名稱(chēng)空間和數(shù)據(jù)報(bào)服務(wù)端口。

您可以使用類(lèi)似于 清單 2 中的命令顯示哪個(gè)端口 nmbd 開(kāi)著。這如清單 3 所示。

清單 3. 顯示 nmbd 監(jiān)聽(tīng)的端口

# netstat -anup | grep nmbd
udp 0 0 192.168.1.255:137 0.0.0.0:* 2975/nmbd
udp 0 0 192.168.1.143:137 0.0.0.0:* 2975/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 2975/nmbd
udp 0 0 192.168.1.255:138 0.0.0.0:* 2975/nmbd
udp 0 0 192.168.1.143:138 0.0.0.0:* 2975/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 2975/nmbd

除了查找 nmbd 而非 smbd 之外,清單 3 中的命令使用 netstat 的 -u 選項(xiàng)查找 UDP 端口而非 TCP 端口。結(jié)果顯示 nmbd 在各個(gè)接口監(jiān)聽(tīng)端口 137 和 138,且在監(jiān)聽(tīng) 192.168.1.255 的廣播地址。兩個(gè)名稱(chēng)服務(wù)端口都依賴于主機(jī)對(duì)主機(jī)通信和廣播通信。

域服務(wù)

Samba 團(tuán)隊(duì)在不斷更新軟件,以使其更緊密地與 Microsoft 網(wǎng)絡(luò)集成,并替換 Microsoft 基礎(chǔ)架構(gòu)。為此,Samba 必須枚舉網(wǎng)絡(luò)上的這些基礎(chǔ)架構(gòu)服務(wù)。

這些服務(wù)的大部分都在一定程度上涉及到 Kerberos 和 Lightweight Directory Access Protocol (LDAP)。這些是高級(jí)主題,將在后面的文章中更詳細(xì)地介紹。目前,只需知道 Samba 可以做的不僅僅是文件共享。#p#

Samba 使用的端口匯總

表 1 提供 Samba 守護(hù)進(jìn)程監(jiān)聽(tīng)的與文件共享相關(guān)的端口的匯總。

表 1. Samba 使用的端口匯總

端口 協(xié)議 服務(wù) 守護(hù)進(jìn)程 描述
137 UDP netbios-ns nmbd NetBIOS 名稱(chēng)服務(wù)
138 UDP netbios-dgm nmbd NetBIOS 數(shù)據(jù)報(bào)服務(wù)
139 TCP netbios-ssn smbd NetBIOS over TCP(會(huì)話服務(wù))
445 TCP microsoft-ds smbd 直接托管的 SMB

 服務(wù)列中的標(biāo)記是知名的服務(wù)名稱(chēng),它來(lái)自一個(gè)名為 /etc/services 的文件。服務(wù)文件幫助應(yīng)用程序?qū)⒎?wù)名稱(chēng)解析為端口號(hào)。該文件還幫助人們將端口號(hào)關(guān)聯(lián)到服務(wù)名稱(chēng)。盡管大部分服務(wù)同時(shí)保留 TCP 和 UDP 端口,應(yīng)用程序不必同時(shí)使用 UDP 和 TCP。當(dāng)兩個(gè)不同的服務(wù)嘗試使用不同協(xié)議上的同一端口號(hào)時(shí),保留兩者可消除可能的混淆。

另外值得一提的是,/etc/services 中的端口號(hào)和名稱(chēng)不是強(qiáng)制實(shí)施的。您可以在與預(yù)期的不同的端口上運(yùn)行守護(hù)進(jìn)程,前提是您可以將這一變更傳遞給客戶端。例如,只要您的客戶端不打算在標(biāo)準(zhǔn)端口上對(duì)話,您可以在端口 5137 到 5139 和 5445 上運(yùn)行 Samba。

Samba 問(wèn)題故障排除

Samba 也難免有問(wèn)題。有時(shí),這些問(wèn)題是由系統(tǒng)管理員引起的;有時(shí)是由用戶引起的。作為系統(tǒng)管理員,您的工作就是找出問(wèn)題所在,然后查明解決方法。

測(cè)試配置文件

如果 Samba 無(wú)法啟動(dòng),或您想檢查配置文件看是否正確,那么 testparm 實(shí)用程序?qū)⒂兴鶐椭?。該?shí)用程序檢查 smb.conf 是否正確。清單 4 顯示出現(xiàn)錯(cuò)誤時(shí) testparm 的結(jié)果。

清單 4. 在一個(gè)不正確的 smb.conf 文件上使用 testparm

# testparm
Load smb config files from /etc/samba/smb.conf
Unknown parameter encountered: "hide dto files"
Ignoring unknown parameter "hide dto files"
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
passdb backend = tdbsam
log file = /var/log/samba/log.%m
max log size = 50
cups options = raw
<< rest of the output omitted >>

testparm 的輸出從文件的位置開(kāi)始。如果您想指定一個(gè)不同的文件,在命令行上傳遞文件的名稱(chēng),如下面的例子:

testparm /home/me/smb.conf

接下來(lái),testparm 抱怨有一個(gè)名為 hide dto files 的無(wú)效參數(shù)。實(shí)際上該參數(shù)應(yīng)當(dāng)是 hide dot 文件。

在處理配置文件之后,您就得到一些有關(guān)服務(wù)器角色和配置文件精簡(jiǎn)版的信息。該版本將注釋剝離出來(lái),且始終經(jīng)過(guò)格式化,因此有時(shí)您會(huì)捕捉到這里漏掉的錯(cuò)誤,同時(shí)在文本編輯器中瀏覽 smb.conf。

在作出更改之后您應(yīng)當(dāng)在您的配置文件上運(yùn)行 testparm。Samba 忽略配置文件中的大多數(shù)印刷錯(cuò)誤,且在啟動(dòng)時(shí)并不總是寫(xiě)入消息到控制臺(tái)。在發(fā)現(xiàn)某些東西不能正常工作之前,您可能不會(huì)捕捉到這類(lèi)錯(cuò)誤。Testparm 會(huì)提醒您 smb.conf 中的任何印刷錯(cuò)誤。

默認(rèn)情況下,testparm 僅向您展示 smb.conf 中輸入的配置。如果您懷疑您在某個(gè)地方使用了默認(rèn)值,可以使用 -v 選項(xiàng)強(qiáng)制testparm 也顯示默認(rèn)值。

testparm 的另一個(gè)用法是將輸出限制到單一部分或參數(shù)。清單 5 顯示如何使用 testparm 查看 security mask 選項(xiàng)的值。

清單 5. 將 testparm 限制到單一參數(shù)

# testparm -s --parameter-name "security mask"
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Loaded services file OK.
0777

在清單 5 中,-s 參數(shù)阻止 testparm 在解析 smb.conf 與將其顯示到屏幕之間的用戶輸入。使用 --parameter name "security mask"詢問(wèn) security mask 的值。結(jié)果是 0777,即默認(rèn)值。在該模式下,沒(méi)有必要指定 -v 來(lái)顯示默認(rèn)值。

作為客戶端進(jìn)行連接

您可以不用到用戶桌面并親自試驗(yàn)一些東西,而是可以在您自己的桌面通過(guò)命令行執(zhí)行大量測(cè)試。第一個(gè)最簡(jiǎn)單的測(cè)試是確保您可以連接到 Samba 端口。做到這一點(diǎn)的最簡(jiǎn)單的方法是使用 telnet 命令,如清單 6 所示。

清單 6. 測(cè)試與 telnet 的連接

# telnet bob 139
Trying 192.168.1.134...
telnet: connect to address 192.168.1.134: Connection refused

在清單 6 中,root 用戶在端口 139 上連接到服務(wù)器 bob。您還可以使用端口 445 測(cè)試直接托管的 SMB 端口。結(jié)果是 Connection refused,這表示守護(hù)進(jìn)程沒(méi)有監(jiān)聽(tīng)該地址,或防火墻阻止連接。其他結(jié)果,比如 No route to host 或 Connection timed out 如出一轍。

客戶端通常使用一個(gè)名稱(chēng)而非 IP 地址連接到一臺(tái)服務(wù)器。如果您使用 telnet 連接到服務(wù)器名稱(chēng),而非 IP 地址,要特別注意返回的 IP 地址。在上述示例中,服務(wù)器(bob) 被解析為 192.168.1.134。有時(shí),您的 DNS 記錄會(huì)有錯(cuò)誤,導(dǎo)致客戶端連接到錯(cuò)誤的地址。

如果您不使用 DNS 進(jìn)行 Windows 名稱(chēng)解析,那么可以使用 nmblookup 命令執(zhí)行一個(gè) NetBIOS 名稱(chēng)查詢。清單 7 顯示 bob 服務(wù)器查詢。

清單 7. 為 bob 執(zhí)行一個(gè) NetBIOS 名稱(chēng)查詢

# nmblookup bob
querying bob on 192.168.1.255
192.168.1.138 bob<00>

根據(jù)清單 7,服務(wù)器 bob 的 IP 地址是 192.168.1.138,而非 192.168.1.134,如 清單 6 所示。結(jié)果表示 DNS 出現(xiàn)問(wèn)題,特別是當(dāng)端口 139 和 445 在 192.168.1.138 上做出反應(yīng)時(shí)。

另一項(xiàng)測(cè)試是看看配置文件是否拒絕訪問(wèn)某一主機(jī)。Testparm 再次在清單 8 中用到。

清單 8. 使用 testparm 檢查訪問(wèn)

# testparm /etc/samba/smb.conf seanspc 192.168.1.147
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Deny connection from seanspc (192.168.1.147) to homes
Deny connection from seanspc (192.168.1.147) to printers

Deny connection from seanspc (192.168.1.147) to public

在清單 8 中,有三個(gè)項(xiàng)目被傳遞給 testparm:

  • Samba 配置文件的路徑
  • 要測(cè)試的機(jī)器的 NetBIOS 名稱(chēng)
  • 要測(cè)試的機(jī)器的 IP 地址

清單 8 中的輸出顯示拒絕考慮中的機(jī)器訪問(wèn)所有共享。在這種模式下使用 testparm 時(shí),實(shí)用程序?qū)嶋H上不作為該機(jī)器進(jìn)行連接。相反地,testparm 處理配置文件,以查看是否允許訪問(wèn)。

如果目前為止的所有測(cè)試都成功,您可以嘗試使用 smbclient 實(shí)用程序建立一個(gè)客戶端連接。第一個(gè)測(cè)試是要試圖瀏覽共享列表,如清單 9 所示。

清單 9. 顯示機(jī)器的共享

[sean@bob source3]$ smbclient -L '\\bob'
Enter sean's password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.6-69.fc13]
Sharename Type Comment
--------- ---- -------
extdrive Disk
Sean Walberg's iMac Disk
timemachine Disk
IPC$ IPC IPC Service (Samba Server Version 3.5.6-69.fc13)
test Printer test
Downstairs_Laser Printer HP 6L
Cups-PDF Printer Cups-PDF
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.6-69.fc13]
Server Comment
--------- -------
BOB Samba Server Version 3.5.6-69.fc13
Workgroup Master
--------- -------
MYGROUP BOB
WORK SWALBERG-XPLT
WORKGROUP IMAC-1FC525

在清單 9 中,用戶在 bob 服務(wù)器上使用 -L 參數(shù)請(qǐng)求共享列表。服務(wù)器名稱(chēng)以兩個(gè)反斜杠(\\)為前綴,因?yàn)樗且粋€(gè) Universal Naming Convention (UNC) 路徑。在選擇單引號(hào)和雙引號(hào)時(shí)要小心。單引號(hào)插入并將反斜杠看作是轉(zhuǎn)義符。

如果您的服務(wù)器有更多的安全設(shè)置,您可能需要分別使用 -W 和 -U 參數(shù)傳遞用戶名或域。

最后,您可以嘗試連接到一個(gè)共享,方法就是省略掉 -L 參數(shù)并指定到共享的一個(gè)完整的 UNC 路徑。清單 10 顯示客戶端使用不同的工作組和用戶名連接到一臺(tái)服務(wù)器。

清單 10. 使用不同的用戶名和域連接到共享

[sean@bob source3]$ smbclient '\\swalberg-xplt\photos' -U swalberg -W WORK
Enter swalberg's password:
Domain=[WORK] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> dir
. D 0 Thu Jan 6 11:39:50 2011
.. D 0 Thu Jan 6 11:39:50 2011
<< files omitted >>
38156 blocks of size 4194304. 2938 blocks available
smb: \>>

如果這些測(cè)試通過(guò),您可以很確定問(wèn)題與 Samba 配置無(wú)關(guān),而是客戶端與服務(wù)器之間或客戶端本身某個(gè)地方有問(wèn)題。您可以查看下一節(jié)將要介紹的日志,其中就問(wèn)題所在提供了一些線索。#p#

日志記錄和調(diào)試

日志記錄和故障排除相伴而行。日志允許您回顧歷史,查看是否有錯(cuò)誤發(fā)生并在問(wèn)題發(fā)生時(shí)獲取有關(guān)問(wèn)題的更多細(xì)節(jié)。如果您嘗試弄清為何有些東西不能正常運(yùn)作,可以增加日志數(shù)量,直至獲得必要的詳細(xì)程度。Samba 在 smb.conf 中提供了一些參數(shù)來(lái)處理日志記錄;您可以一起使用這些參數(shù)來(lái)定制生成的日志類(lèi)型。

Samba 就像一個(gè)傳統(tǒng)的 UNIX 守護(hù)進(jìn)程,在于它可以將日志記錄到 syslog 工具,并生成其自己的日志文件。此外,Microsoft Event Viewer 工具可以連接到一個(gè) Samba 服務(wù)器來(lái)提取日志。后一特性的要點(diǎn)在于,Samba 不能直接將日志記錄為事件日志格式:您必須使用 Samba 工具對(duì)您的日志文件進(jìn)行后處理。

日志級(jí)別

Samba 生成的每條日志消息都有一個(gè) 級(jí)別,即從 0 到 10 的一個(gè)整數(shù)。較高級(jí)的消息,比如新連接和重要錯(cuò)誤,具有較低的級(jí)別。消息調(diào)試具有較高的級(jí)別。通過(guò)指定您想記錄的日志的最大級(jí)別,可以控制日志量。級(jí)別為 1 的日志僅記錄優(yōu)先級(jí)為 0 或 1 的消息。如果您想要更多的日志記錄,可以使用一個(gè)較高的數(shù)字。

級(jí)別大于 3 的任何日志都旨在用于開(kāi)發(fā)人員,對(duì)系統(tǒng)管理員沒(méi)有太大的幫助。使用日志級(jí)別 0 將避開(kāi)除一些啟動(dòng)消息和關(guān)鍵錯(cuò)誤之外的任何消息。

要配置日志級(jí)別,在 global 部分使用 log level 參數(shù);例如,使用 log level = 2 將日志級(jí)別設(shè)置為 2。該設(shè)置記錄優(yōu)先級(jí)為 2 或更小的任何消息。

您可以在運(yùn)行時(shí)更改日志級(jí)別,方法就是發(fā)送 SIGUSR1 信號(hào)給 Samba 進(jìn)程來(lái)增加日志級(jí)別,或發(fā)送 SIGUSR2 減少日志級(jí)別。

您還可以讓您的日志級(jí)別更細(xì)粒度一些,僅在某些功能中通過(guò)指定想要記錄的類(lèi)別來(lái)增加詳細(xì)程度。這些類(lèi)別是:

  • all。該參數(shù)是可選的:如果您不指定額外的關(guān)鍵字,假定使用all。
  • tdb。與不重要的數(shù)據(jù)庫(kù)相關(guān)的日志消息,這是 Samba 使用的鍵值存儲(chǔ)。
  • printdrivers。打印機(jī)驅(qū)動(dòng)程序管理例程。
  • lanman。 NT LAN Manager 調(diào)試。
  • smb。 SMB 協(xié)議調(diào)試。
  • rpc_parse。遠(yuǎn)程過(guò)程調(diào)用(RPCs)解析。
  • rpc_srv。服務(wù)器端 RPCs。
  • rpc_cli??蛻舳?RPCs。
  • passdb。在 Samba 主機(jī)上存儲(chǔ)密碼的舊有方式。
  • sam。本地 Samba 帳戶數(shù)據(jù)庫(kù)。
  • auth。Samba 內(nèi)與用戶身份驗(yàn)證相關(guān)的各個(gè)模塊。
  • winbind。用于允許 Microsoft 用戶透明地登錄到 UNIX 系統(tǒng)的組件。
  • vfs。為 Virtual File System 模塊調(diào)試消息,允許您通過(guò)可插入模塊添加功能到 Samba。
  • idmap。在 UNIX 用戶 IDs 與 Microsoft 安全標(biāo)識(shí)符之間映射身份。
  • quota。與配額處理相關(guān)的消息,同時(shí)由 Microsoft Windows NT 策略和 UNIX 文件系統(tǒng)處理。
  • acls。訪問(wèn)控制列表處理。
  • locking。文件鎖定狀態(tài)和錯(cuò)誤。
  • msdfs。與 Samba 的分布式文件系統(tǒng)支持相關(guān)的日志消息。
  • dmapi。數(shù)據(jù)管理應(yīng)用程序編程接口(API)功能。必須使用第三方 DMAPI 實(shí)現(xiàn)編譯 Samba 來(lái)使用該功能。
  • registry。Windows 注冊(cè)表的模仿。

要使用這些額外的日志記錄,將關(guān)鍵字和值附加到日志級(jí)別參數(shù),用冒號(hào)(:)分割。例如,log level = 1 winbind:3 將系統(tǒng)默認(rèn)日志級(jí)別設(shè)置為 1,并將 winbind 日志級(jí)別增加到 3。這一變更可以幫助您調(diào)試有關(guān)單點(diǎn)登錄的問(wèn)題,而無(wú)需淹沒(méi)于無(wú)關(guān)的日志文件中。

日志文件位置

要更改日志文件的名稱(chēng),使用 log file 參數(shù)。您還可以在值中使用宏。一個(gè)常用的設(shè)置是讓一個(gè)客戶端擁有一個(gè)日志文件。為此,請(qǐng)指定:

log file = /var/log/samba/log.%m

該命令將單個(gè)日志文件分割為每個(gè)客戶端一個(gè)文件,其余消息歸入 log.smbd。

如果您想將日志記錄到 syslog,可以指定 syslog = 1 來(lái)將級(jí)別 1 或 0 的所有日志發(fā)送到本地 syslog 服務(wù)器。Samba 使用LOG_DAEMON 工具并將 Samba 日志級(jí)別按照如下優(yōu)先級(jí)映射到 syslog:

  • LOG_ERR。日志級(jí)別 0
  • LOG_WARNING。日志級(jí)別 1
  • LOG_NOTICE。日志級(jí)別 2
  • LOG_INFO。日志級(jí)別 3
  • LOG_DEBUG。日志級(jí)別 4 或更高

您使用可以過(guò)濾傳入的消息并警惕系統(tǒng)管理員的一個(gè)更高級(jí)的 syslog 守護(hù)進(jìn)程,這是監(jiān)視您的 Samba 服務(wù)器的一種很好的方式。

日志元數(shù)據(jù)

您可以添加或刪除顯示在帶有更多全局參數(shù)的所有日志條目中的一些消息:

  • debug timestamp。添加一個(gè)時(shí)間戳到日志消息,且是默認(rèn)啟用的
  • debug uid。記錄生成日志的 Samba 進(jìn)程的用戶和組 IDs
  • debug prefix timestamp。繼續(xù)使用時(shí)間戳,但是在生成日志的 Samba 源代碼中刪除有關(guān)位置的信息
  • debug pid。記錄生成日志的 Samba 進(jìn)程的進(jìn)程標(biāo)識(shí)符
  • debug hires timestamp。將時(shí)間戳分辨率改為微秒,而非秒
  • debug class。記錄日志消息的類(lèi)別,如果您要更改某個(gè)類(lèi)的詳細(xì)程度這會(huì)有所幫助(該選項(xiàng)幫助確定您想要的類(lèi)。)

日志記錄可幫助您找到問(wèn)題,或者也可以讓您處于雜亂中。Samba 提供各種日志記錄選項(xiàng);要謹(jǐn)慎使用它們。

系統(tǒng)調(diào)用跟蹤

如果其他方法都失敗了,您可以使用 UNIX 系統(tǒng)工具查看進(jìn)程內(nèi)的狀況。Linux strace 程序允許您跟蹤應(yīng)用程序做出的所有系統(tǒng)調(diào)用。一個(gè)應(yīng)用程序使用系統(tǒng)調(diào)用打開(kāi)和讀取文件、創(chuàng)建和銷(xiāo)毀進(jìn)程,并與操作系統(tǒng)其余進(jìn)程進(jìn)行交互。

清單 11 顯示 root 用戶跟蹤一個(gè) Samba 進(jìn)程,該進(jìn)程向客戶端拋出一個(gè)錯(cuò)誤。

清單 11. 使用 strace 程序跟蹤進(jìn)程

# ps -ef | grep smb
sean 13375 28812 0 21:54 ? 00:00:00 smbd -D
root 14294 13593 0 21:55 pts/2 00:00:00 grep smb
root 16132 28812 0 Feb27 ? 00:00:36 smbd -D
root 28812 1 0 Feb14 ? 00:00:28 smbd -D
root 28814 28812 0 Feb14 ? 00:00:00 smbd -D
[root@bob /]# strace -e trace=file -p 13375
Process 13375 attached - interrupt to quit
<< Output omitted >>
chdir("/home/sean") = 0
stat64("somedir", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat64("somedir/*", 0xbfcb5f60) = -1 EACCES (Permission denied)
getcwd("/home/sean", 4096) = 11
lstat64("/home/sean/somedir", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
lstat64("/home/sean/somedir/*", 0xbfcb5ffc) = -1 EACCES (Permission denied)

第一個(gè)命令查找 Samba 進(jìn)程列表。由于 Samba 采用所連接用戶的身份,可以輕松將進(jìn)程 13375 識(shí)別為屬于該用戶的進(jìn)程。接下來(lái),運(yùn)行帶有兩個(gè)參數(shù)的 strace 命令:-e trace=file 限制與文件相關(guān)的系統(tǒng)調(diào)用的輸出。對(duì)于您會(huì)遇到的 Samba 問(wèn)題,這是一個(gè)很好的初始估計(jì)。第二個(gè)參數(shù) -p 13375 告訴 strace 使用這個(gè)進(jìn)程 ID 連接到運(yùn)行的進(jìn)程。

從該命令的輸出中,您會(huì)看到 smb 在不斷掃描目錄看是否有變更。當(dāng)用戶嘗試有問(wèn)題的操作時(shí),您可能會(huì)看到如 清單 11 所示的輸出。最后幾個(gè)命令嘗試使用 stat64 調(diào)用獲取目錄內(nèi)有關(guān)文件的信息。結(jié)果是 permission denied,這表示用戶在系統(tǒng)文件級(jí)被拒絕,而非由 Samba 拒絕。該命令可以為您提供更多信息來(lái)解決問(wèn)題,比如更改目錄屬性或告訴用戶不允許他/她訪問(wèn)目錄。

原文:http://www.ibm.com/developerworks/cn/linux/l-lpic3-312-1/index.html?ca=drs-

【編輯推薦】

  1. 從源碼配置和構(gòu)建 Samba
  2. Samba在企業(yè)中的簡(jiǎn)單應(yīng)用案例
  3. Samba服務(wù)器安裝配置全攻略
責(zé)任編輯:黃丹 來(lái)源: IBMDW
相關(guān)推薦

2025-01-02 11:01:13

Apache文件類(lèi)型部署

2011-03-04 15:34:52

FileZilla

2012-12-11 15:46:46

2022-03-29 09:14:23

LinuxWindows文件

2010-01-06 16:38:31

2010-09-17 14:04:14

JVM內(nèi)存設(shè)置

2009-12-16 14:26:19

Linux VMwar

2023-10-11 13:32:30

2020-07-14 08:48:07

數(shù)據(jù)分析技術(shù)IT

2018-10-19 09:51:05

服務(wù)器內(nèi)存RAM

2010-05-25 13:11:21

SVNClient

2009-12-02 11:39:15

samba設(shè)置用戶

2009-11-26 09:02:30

Suse Linux

2010-08-26 09:03:05

IE6

2010-08-19 09:48:46

IE6

2010-03-30 09:01:01

Oracle數(shù)據(jù)

2010-01-14 13:59:01

2010-09-27 10:01:02

Tomcat5JVM

2010-01-21 16:57:35

交換機(jī)網(wǎng)關(guān)設(shè)置

2010-08-23 08:53:04

CSSmargin外邊距
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 激情一区二区三区 | 免费av一区二区三区 | 九九九视频在线观看 | 精品国产一区二区三区观看不卡 | 精品视频一区二区三区在线观看 | 日韩一区二区在线播放 | 成人免费激情视频 | 国产一二区在线 | 91精品国产日韩91久久久久久 | 欧美日本亚洲 | 男人av在线播放 | 波多野结衣亚洲 | 国产一级毛片视频 | 99精品免费久久久久久久久日本 | 在线观看成人免费视频 | 亚洲精品久久久久久一区二区 | 久久精品视频网站 | 日本91av视频 | 精品国产乱码一区二区三区a | 久久久性 | 乳色吐息在线观看 | 久久一区二区三区电影 | 久久99国产精一区二区三区 | 欧美视频成人 | 精品一区久久 | www.国产91 | 成人伊人网 | 欧美一区二区三区国产精品 | 欧美自拍日韩 | 精品无码久久久久久国产 | 久久久久亚洲国产| 武道仙尊动漫在线观看 | 亚洲一一在线 | 欧美电影在线观看网站 | 一级高清 | 欧美精品中文字幕久久二区 | 中文字幕第十五页 | 日韩成人一区 | 欧美激情亚洲 | 99色在线 | 亚洲成人免费观看 |