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

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

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

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

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

Samba 配置文件

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

注意:盡管 smb.conf 是設(shè)計為通過文本編輯器編輯的,Samba 團隊開發(fā)出了一個基于 web 的工具,名為 Samba Web Administration Tool。另外也有 webmin 等其他工具。重要的是要記住,在運行這些工具之前或之后,您仍然可以編輯 smb.conf,因為您在操作一個文本文件。

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

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

Sections

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

有三個 section 名具有特殊的含義:

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

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

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

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

Parameters

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

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

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

Comments

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

配置示例

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

清單 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

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

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

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

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

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

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

文件和打印共享

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

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

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

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

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

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

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

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

名稱服務(wù)

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

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

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

您可以使用類似于 清單 2 中的命令顯示哪個端口 nmbd 開著。這如清單 3 所示。

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

# 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 選項查找 UDP 端口而非 TCP 端口。結(jié)果顯示 nmbd 在各個接口監(jiān)聽端口 137 和 138,且在監(jiān)聽 192.168.1.255 的廣播地址。兩個名稱服務(wù)端口都依賴于主機對主機通信和廣播通信。

域服務(wù)

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

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

Samba 使用的端口匯總

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

表 1. Samba 使用的端口匯總

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

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

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

Samba 問題故障排除

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

測試配置文件

如果 Samba 無法啟動,或您想檢查配置文件看是否正確,那么 testparm 實用程序?qū)⒂兴鶐椭T搶嵱贸绦驒z查 smb.conf 是否正確。清單 4 顯示出現(xiàn)錯誤時 testparm 的結(jié)果。

清單 4. 在一個不正確的 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 的輸出從文件的位置開始。如果您想指定一個不同的文件,在命令行上傳遞文件的名稱,如下面的例子:

testparm /home/me/smb.conf

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

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

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

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

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

清單 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"詢問 security mask 的值。結(jié)果是 0777,即默認(rèn)值。在該模式下,沒有必要指定 -v 來顯示默認(rèn)值。

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

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

清單 6. 測試與 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 測試直接托管的 SMB 端口。結(jié)果是 Connection refused,這表示守護進(jìn)程沒有監(jiān)聽該地址,或防火墻阻止連接。其他結(jié)果,比如 No route to host 或 Connection timed out 如出一轍。

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

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

清單 7. 為 bob 執(zhí)行一個 NetBIOS 名稱查詢

# 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)問題,特別是當(dāng)端口 139 和 445 在 192.168.1.138 上做出反應(yīng)時。

另一項測試是看看配置文件是否拒絕訪問某一主機。Testparm 再次在清單 8 中用到。

清單 8. 使用 testparm 檢查訪問

# 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 中,有三個項目被傳遞給 testparm:

  • Samba 配置文件的路徑
  • 要測試的機器的 NetBIOS 名稱
  • 要測試的機器的 IP 地址

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

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

清單 9. 顯示機器的共享

[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ù)請求共享列表。服務(wù)器名稱以兩個反斜杠(\\)為前綴,因為它是一個 Universal Naming Convention (UNC) 路徑。在選擇單引號和雙引號時要小心。單引號插入并將反斜杠看作是轉(zhuǎn)義符。

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

最后,您可以嘗試連接到一個共享,方法就是省略掉 -L 參數(shù)并指定到共享的一個完整的 UNC 路徑。清單 10 顯示客戶端使用不同的工作組和用戶名連接到一臺服務(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: \>>

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

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

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

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

日志級別

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

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

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

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

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

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

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

日志文件位置

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

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

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

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

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

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

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

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

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

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

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

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

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

清單 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)

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

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

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

【編輯推薦】

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

2025-01-02 11:01:13

Apache文件類型部署

2011-03-04 15:34:52

FileZilla

2022-03-29 09:14:23

LinuxWindows文件

2012-12-11 15:46:46

2009-12-16 14:26:19

Linux VMwar

2010-01-06 16:38:31

2010-09-17 14:04:14

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

2018-10-19 09:51:05

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

2009-12-02 11:39:15

samba設(shè)置用戶

2009-11-26 09:02:30

Suse Linux

2023-10-11 13:32:30

2020-07-14 08:48:07

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

2010-08-19 09:48:46

IE6

2010-05-25 13:11:21

SVNClient

2010-03-30 09:01:01

Oracle數(shù)據(jù)

2012-04-27 10:20:45

2010-08-26 09:03:05

IE6

2010-06-02 18:22:43

SVN本地設(shè)置

2010-08-23 08:53:04

CSSmargin外邊距

2009-12-31 09:12:30

華為ADSL設(shè)置
點贊
收藏

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

主站蜘蛛池模板: 欧美一区二区大片 | 北条麻妃视频在线观看 | 国产精品久久久久久福利一牛影视 | 一区二区三区在线 | a级片www| 亚洲国产精品一区二区www | 自拍偷拍亚洲视频 | 欧美一级久久 | 涩涩视频在线观看 | 欧美久久国产精品 | 99精品热视频 | 91成人在线 | 国产在线不卡 | 亚洲精品乱 | 欧美精三区欧美精三区 | 精品一区二区久久久久久久网站 | 一区二区三区电影在线观看 | 久久丁香| 国产精品视频一区二区三区四区国 | 99热精品在线 | 国产在线观看一区二区三区 | 日本三级网 | 欧美精品一区久久 | 亚洲毛片 | 国产精品久久国产精品 | 久草在线 | 欧美黄色一级毛片 | 日韩在线精品 | 成人精品久久 | 亚洲久视频 | 欧美精品中文字幕久久二区 | 日韩精品一区中文字幕 | 一区二区久久 | 亚州精品天堂中文字幕 | 99久久精品国产一区二区三区 | 欧美一级小视频 | 中文字幕亚洲精品 | 午夜影院 | 激情欧美一区二区三区中文字幕 | 久久久tv| 中文字幕久久精品 |