Section: (5)
Updated:
Indexhtml
smb.conf - Samba組件的配置文件node
smb.conf是Samba組件的配置文件,包含Samba程序運行時的配置信息.smb.conf被設計成可由swat (8)程序來配置和管理.本文件包含了關於smb.conf的文件格式和可能出現的選項的完整描述以供參考. mysql
本文件由一系列段和選項構成.一個段由一對方括號中的段名開始,直到下一個段名結束.包含在段中的選項按如下格式定義: react
選項名 = 選項值 linux
本文件是基於文本行的.這就是說,每個以換行符結束的行描述了一個項目(註釋,段名,或選項). ios
段名和選項名是不區分大小寫的. git
只有選項設置中的第一個等號纔有意義.第一個等號先後的空格會被忽略.段名和選項名的先後以及中間包含的空格是無關的.選項值先後的空格會被忽略.選項值中包含的空格會原樣保留. 算法
全部以';'和'#'符開頭的行都會被忽略,就象只有空格的行那樣. sql
按照UNIX上的慣例,以''符號結尾的行續下一行.(也就是說:''是續行符,若是一行寫不下,能夠在行尾以''結束,在下一行繼續寫--譯註) shell
等號後面跟的是字符串(無需引號)或者邏輯值(能夠是yes/no,1/0,或者true/false 來表示).邏輯值是不區分大小寫的.字符串值則原樣保留了輸入的大小寫.某些選項 (例如create modes)的值是數值型的.
配置文件的每一段([global]段除外)描述一項共享資源.段名就是共享名,段內的選項設置肯定了該共享資源的屬性.
三個特殊段([global],[homes],[printers])將在後面'special sections'單獨說明,如下的內容是普通段的說明.
一個共享資源由一個文件目錄和用戶對此目錄的操做權限的說明構成.另外,還列入了一些用於內部管理的選項.
每一段定義了一項文件服務(客戶端能夠把它看做其本機文件系統的延伸)或打印服務(客戶端能夠經過它來使用服務器提供的打印服務).
段能夠定義成guest服務類型,在這種狀況下,客戶無需口令就能夠訪問該資源.一個特定的UNIX系統下的guest account一般用來指定這種狀況下的客戶訪問權限.
除了guest服務類型之外,其餘類型的段定義的共享資源都須要口令才能訪問.用戶名是由客戶端提供的.因爲某些老的客戶端只提供口令,沒有用戶名,你須要在共享定義中使用"user="選項來指定一個用戶列表,以便根據這個用戶列表進行口令驗證.對於象Windos95/98和WindowsNT這樣的現代客戶端程序,這個選項是不須要的.
注意,對於資源的操做權限還取決於主機系統賦予指定用戶或來訪者帳戶的權限.samba提供的服務權限不能超出主機系統指定的權限範圍.
下面的示範段定義了一項文件服務,用戶擁有對/home/bar目錄進行寫操做的權限.這個共享資源是經過共享名"foo"來訪問的.
[foo] path = /home/bar read only = no
下面示範段定義了一項打印服務,此共享資源是隻讀的,可是能夠進行打印操做.也就是說,惟一容許的寫操做只能是打開、寫入並關閉一個打印假脫機文件.其中的guest ok選項定義意味着容許以缺省的guest用戶(在別處定義的)權限進行訪問.
[aprinter] path = /usr/spool/public read only = yes printable = yes guest ok = yes
這一段中定義的選項是服務器的全局性設置,若是在其餘段中沒有再對這些選項進行從新設置的話還能夠做爲它們的缺省選項.更多的說明請參閱'PARAMETERS'部分的內容.
若是配置文件中包含名爲'homes'的段,就能夠創建客戶到本身在服務器上的我的目錄的鏈接.
當服務器收到鏈接請求時,首先在已定義的段中搜索,若是段名與被請求的共享資源名一致,則該段的內容就被採用.若是沒有找到匹配的段,則被請求的資源就被看成是一個用戶名,同時服務器查看本地的口令文件.若是該用戶名在口令文件中存在且用戶給出了正確的口令,服務器就會複製[homes]段的內容來生成一個共享資源(供該用戶訪問).
對新建共享會作如下修改:
若是要在[homes]段中定義訪問路徑path=,宏%S也許對你頗有用.舉例以下:
path = /data/pchome/%S
若是你的PC 有與UNIX服務器上我的目錄不一樣的目錄,象上面這樣的設置會頗有用的.
這是爲大量用戶提供對他們我的目錄的訪問的一種快速簡潔的辦法.
若是被請求訪問的共享資源名就是'homes',那麼,除了共享名不被改變爲發出請求的用戶名外,其餘處理過程和前面提到的過程是相似的.這種方式適合於不一樣用戶共享一臺終端的狀況.
在[homes]段中能夠定義全部普通段中能夠使用的選項,但是有些選項更有意義.下面是一個實用的、典型的[homes]段的例子:
[homes] read only = no
注意,很重要的一點是:若是在[homes]段中定義了容許以guest帳戶訪問的話,任何人均可以無須口令而訪問全部帳戶的宿主目錄.也許在某些特殊狀況下,這正是想要的結果,在這種狀況下,你最好同時把[homes]段設置成只讀.
注意,自動的宿主目錄共享資源的可瀏覽標誌是從[global]段繼承來的,而不是[homes]段.這樣,當在[homes]段中設置browseable=no時,用戶就看不到單獨的'homes'共享,但能夠看到自動的宿主目錄.
這一段很象[homes]段,不過是用於設置共享打印機的.
若是在本配置文件中存在[printers]段,用戶就能夠鏈接到在主機上的printcap文件中指定的任一打印機.
當服務器收到鏈接請求時,首先在已定義的段中搜索,若是有段名與被請求的共享資源名一致,則該段的內容就被採用.若是沒有找到匹配的段,且在配置文件中存在[homes]段,則按照前面所說的方式處理.不然,被請求的資源就被看成是一個打印機名,服務器在適當的printcap文件中查找,檢驗被請求的共享資源名是不是有效的打印機共享名.若是共享名匹配,服務器就會複製[printers]段的內容來生成一個共享打印服務.
對新建共享的修改:
注意,[printers]段必須設置爲可打印,若是你不這樣設置,服務器會拒絕裝載配置文件.
指定的典型路徑應該設爲一個公用的可寫假脫機目錄(spooling)而且設置sticky標誌.一個典型的[printers]段以下所示:
[printers] path = /usr/spool/public guest ok = yes printable = yes
上臺打印機在printcap文件中列出的全部別名都是服務器相關的有效打印機名.若是你係統的打印子系統的工做方式不是這樣,你就必須設置一個僞printcap文件,其中包含一行或多行以下格式的設置:
別名1|別名2|別名3|別名4...
每一個別名必須是你的打印子系統能夠接受的打印機名.在[global]段中指定這個新文件做爲你的printcap文件.這個僞printcap文件能夠包含任何你要的別名,而服務器只識別在此文件中列出的名字.這個技術能夠很方便的用於限制對本地打印機子集的訪問.
順便提一下,printcap文件中的別名用每一個記錄第一項的任何部分來定義.記錄由換行進行分隔.若是一條記錄中有多個部分,中間用"|"符號分隔.
注意,在SYSV系統中,用lpstat能夠肯定系統中安裝了什麼樣的打印機.你能夠設置"printcap name = lpstat"來自動得到打印機列表.詳情參見"printcap name"選項.
選項定義了每一個段的屬性.
有些選項是在[global]段中設定的(好比有關安全特性的設置),有些能夠用在任何段中的(好比創建方式 ),剩下的就只能用在普通的段中了.在如下的描述中,[homes]和[printers]段被看做是普通段.標記(G)表示此選項只能在[global]段中使用,標記(S)表示此選項能夠在服務定義段中使用.注意,有(S)標記的選項也能夠用在[global]段中,在這種狀況下,這個選項設置被看成全部其餘段的缺省設置.
選項的詳細說明是按照字母順序排列的,這樣也許不是最好的分類方式,但至少保證你能夠找獲得他們.若是有多個同義詞,那麼咱們只對首選的那個做詳細說明,其餘的同義詞都只指明參閱那個首選的選項名.
在配置文件中能夠用不少字符串進行替換.例如,當用戶以john的名稱創建鏈接後,選項"path = /tmp/%u"就被解釋成"path = /tmp/john".
這些置換會在後面的描述中說明,這裏說明一些能夠用在任何地方的通用置換.它們是:
Note that this parameter is not available when Samba listens on port 445, as clients no longer send this information
The following substitutes apply only to some configuration options(only those that are used when a connection has been established):
靈活運用這些置換和其餘的smb.conf選項能夠作出很是有創造性的事情來.
Samba支持"名稱修正",這樣dos和windows客戶端就能夠使用與8.3格式不一致的文件.也能夠用來調整8.3格式文件名的大小寫.
有一些選項能夠控制名稱修正的執行,下面集中列出來.對於缺省狀況請看testparm程序的輸出結果.
全部這些選項均可以針對每一個服務項單獨設置(固然也能夠設爲全局變量).
這些選項是:
缺省狀況下,Samba3.0與Windows NT相同,就是不區分大小寫但保持大小寫形式.
用戶有多種鏈接到服務項的方式.服務器按照下面的步驟來肯定是否容許客戶對指定服務的鏈接.若是下面步驟所有失敗,則拒絕用戶的鏈接請求.若是某一步經過,餘下的檢驗就再也不進行.
若是被請求的服務項設置爲guest only = yes,而且,服務運行在共享級安全模式(security = share) ,則跳過1--5步檢查.
如下列出了全部的全局選項,各選項的詳細說明請參看後面的相應段落.注意,有些選項的意義是相同的.
如下列出了全部關於服務項的選項,各選項的詳細說明請參見後面的相應段落.注意,有些選項的意義是相同的.
This command will be run as user.
缺省設置: None.
示例: abort shutdown script = /sbin/shutdown -c
缺省設置: acl compatibility = Auto
示例: acl compatibility = win2k
This option is only required when using sam back-ends tied to the Unix uid method of RID calculation such as smbpasswd. This option is only available in Samba 3.0.
缺省設置: add machine script = <空字符串>
示例: add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
For a Samba host this means that the printer must be physically added to the underlying printing system. The add printer command defines a script to be run which will perform the necessary operations for adding the printer to the print system and to add the appropriate service definition to the smb.conf file in order that it can be shared by smbd(8).
The addprinter command is automatically invoked with the following parameter (in order):
printer name
share name
port name
driver name
location
Windows 9x driver location
All parameters are filled in from the PRINTER_INFO_2 structure sent by the Windows NT/2000 client with one exception. The "Windows 9x driver location" parameter is included for backwards compatibility only. The remaining fields in the structure are generated from answers to the APW questions.
Once the addprinter command has been executed, smbd will reparse the smb.conf to determine if the share defined by the APW exists. If the sharename is still invalid, then smbd will return an ACCESS_DENIED error to the client.
The "add printer command" program can output a single line of text, which Samba will set as the port the new printer is connected to. If this line isn't output, Samba won't reload its printer shares.
參見 deleteprinter command, printing, show add printer wizard
缺省設置: none
示例: addprinter command = /usr/bin/addprinter
When executed, smbd will automatically invoke the add share command with four parameters.
configFile - the location of the global smb.conf file.
shareName - the name of the new share.
pathName - path to an **existing** directory on disk.
comment - comment string to associate with the new share.
This parameter is only used for add file shares. To add printer shares, see the addprinter command.
參見 change share command, delete share command.
缺省設置: none
示例: add share command = /usr/local/bin/addshare
一般,samba服務器須要爲全部訪問服務器上文件的用戶創建UNIX用戶帳號.可是在使用Windows NT帳號數據庫做爲主用戶數據庫的站點,創建這些用戶並在與NT的主域控制器保持用戶列表同步是一件很麻煩的事情.這個選項使smbd能夠在用戶訪問時根據須要自動生成UNIX用戶帳號.
爲了使用這個選項,smbd必須被設置成security=server或者security=domain,而且add user script必須設爲用%u參數來創建unix賬號的腳本文件的全路徑,%u擴展成創建的unix賬號名.
當windows用戶嘗試訪問samba服務器時,在登錄時(創建SMB協議會話),smbd與口令服務器聯繫,並嘗試驗證用戶名和口令.若是成功,smbd就會根據unix的口令文件試着將這個windows用戶映射成一個unix用戶.若是查找失敗,但設置了add user script ,smbd就會以root的身份調用這個腳本,將%u擴展成該要創建的用戶帳號.
若是這個腳本執行成功,smbd就認爲這個用戶已經存在.用這種方式,能夠動態創建UNIX用戶帳號並匹配已有的NT帳號.
參見 security, password server, delete user script.
缺省設置: add user script = <空字符串>
示例: add user script = /usr/local/samba/bin/add_user %u
缺省設置: add user to group script =
示例: add user to group script = /usr/sbin/adduser %u %g
當心使用該選項,由於在這個名單裏的用戶能夠對共享資源做任何他們想作的事.
缺省設置: 沒有 admin users
示例: admin users = jason
缺省設置: afs share = no
示例: afs share = yes
The mapped user name must contain the cell name to log into, so without setting this parameter there will be no token.
缺省設置: none
示例: afs username map = %u@afs.samba.org
Setting this option to a larger value could be useful to sites transitioning from WinNT and Win2k, as existing user and group rids would otherwise clash with sytem users etc.
All UIDs and GIDs must be able to be resolved into SIDs for the correct operation of ACLs on the server. As such the algorithmic mapping can't be 'turned off', but pushing it 'out of the way' should resolve the issues. Users and groups can then be assigned 'low' RIDs in arbitary-rid supporting backends.
缺省設置: algorithmic rid base = 1000
示例: algorithmic rid base = 100000
若是你只須要在域中對成員提供服務資源的話這個選項是很是有用的.舉例來講,假設有兩個域DOMA和DOMB,DOMA已經向DOMB進行了委託,而samba服務器位於DOMA中.在一般狀況下,在DOMB中有帳號的用戶能夠用一樣的samba服務器帳號名訪問UNIX上的資源.而無須他在DOMA上有帳號.不過這樣就使安全界線更難分清了.
缺省設置: allow trusted domains = yes
缺省設置: announce as = NT Server
示例: announce as = Win95
缺省設置: announce version = 4.9
示例: announce version = 2.0
Each entry in the list attempts to authenticate the user in turn, until the user authenticates. In practice only one method will ever actually be able to complete the authentication.
Possible options include guest (anonymous access), sam (lookups in local list of accounts based on netbios name or domain name), winbind (relay authentication requests for remote users through winbindd), ntdomain (pre-winbindd method of authentication for remote domain users; deprecated in favour of winbind method), trustdomain (authenticate trusted users by contacting the remote DC directly from smbd; deprecated in favour of winbind method).
缺省設置: auth methods = <空字符串>
示例: auth methods = guest sam winbind
缺省設置: available = yes
對於名字服務,它將使nmbd 綁定到'interfaces'選項裏列出的網絡接口的137和138端口上.爲了讀取廣播消息,nmbd也會綁定到"全部地址"接口(0.0.0.0)的137和138端口上.若是沒有設置這個選項,nmbd將在全部的接口上響應名字服務請求.若是設置了"bind interfaces only",那麼nmbd將在廣播接口上檢查任何分組的源地址,丟棄任何不匹配interfaces選項所列接口之廣播地址的分組.當在其它接口上收到單播分組,此選項使nmbd拒絕對任何不是是interfaces選項所列接口來發送分組的主機的服務.IP源地址哄騙能夠使這個簡單的檢查失效,因此不要將nmbd安全功能用於嚴肅場合.
對於文件服務,該選項使smbd(8)只在'interfaces'選項所列的網絡接口上綁定.這就限制smbd 只響應那些接口上發出的分組.注意,不該該在PPP和時斷時續的機器上或非廣播網絡接口上使用這個選項,由於它處理不了非永久鏈接的接口.
若是設置了bind interfaces only,除非網絡地址127.0.0.1被加到interfaces選項的列表中,不然smbpasswd(8)和swat(8) 可能不會象咱們所指望的那樣工做,緣由以下:
爲了改變用戶SMB口令,smbpasswd缺省狀況下會以smb客戶端的身份鏈接本地主機地址localhost - 127.0.0.1,發出更改口令請求.若是設置了bind interfaces only,smbpasswd在缺省狀況下將會鏈接失敗,除非127.0.0.1已被加入到interfaces選項.另外,能夠用-r remote machine選項指定本地主機的主網絡接口ip地址,這樣smbpasswd就會強制使用本地的主ip地址.
swat的狀態頁面會在127.0.0.1嘗試鏈接smbd和 nmbd,以肯定它們是否正在運行.若是不加入127.0.0.1,將會使smbd和nmbd 總表示沒有運行甚至實際狀況並非這樣.這就阻止了 swat啓動/中止/重啓動smbd 和nmbd進程.
缺省設置: bind interfaces only = no
若是設置了這個選項,鎖定範圍請求不能當即知足的話,samba將會在內部對請求進行排隊,而且週期性地嘗試得到鎖定,直到超時.
若是這個選項設置爲no,samba就會同之前版本那樣,在鎖定範圍沒法得到時當即使鎖定請求失敗.
缺省設置: blocking locks = yes
Changing this parameter may have some effect on the efficiency of client writes, this is not yet confirmed. This parameter was added to allow advanced administrators to change it (usually to a higher value) and test the effect it has on client write performance without re-compiling the code. As this is an experimental option it may be removed in a future release.
Changing this option does not change the disk free reporting size, just the block size unit reported to the client.
缺省設置: browseable = yes
缺省設置: browse list = yes
缺省設置: case sensitive = no
缺省設置: change notify timeout = 60
示例: change notify timeout = 300
這將把掃描時間改成每5分鐘一次.
When executed, smbd will automatically invoke the change share command with four parameters.
configFile - the location of the global smb.conf file.
shareName - the name of the new share.
pathName - path to an **existing** directory on disk.
comment - comment string to associate with the new share.
This parameter is only used modify existing file shares definitions. To modify printer shares, use the "Printers..." folder as seen when browsing the Samba host.
參見 add share command, delete share command.
缺省設置: none
示例: change share command = /usr/local/bin/addshare
The LANMAN encrypted response is easily broken, due to it's case-insensitive nature, and the choice of algorithm. Clients without Windows 95/98 servers are advised to disable this option.
Disabling this option will also disable the client plaintext auth option
Likewise, if the client ntlmv2 auth parameter is enabled, then only NTLMv2 logins will be attempted. Not all servers support NTLMv2, and most will require special configuration to us it.
Default : client lanman auth = yes
If enabled, only an NTLMv2 and LMv2 response (both much more secure than earlier versions) will be sent. Many servers (including NT4 < SP4, Win9x and Samba 2.2) are not compatible with NTLMv2.
Similarly, if enabled, NTLMv1, client lanman auth and client plaintext auth authentication will be disabled. This also disables share-level authentication.
If disabled, an NTLM response (and possibly a LANMAN response) will be sent by the client, depending on the value of client lanman auth.
Note that some sites (particularly those following 'best practice' security polices) only allow NTLMv2 responses, and not the weaker LM or NTLM.
Default : client ntlmv2 auth = no
缺省設置: client plaintext auth = yes
缺省設置: client schannel = auto
示例: client schannel = yes
When set to auto, SMB signing is offered, but not enforced. When set to mandatory, SMB signing is required and if set to disabled, SMB signing is not offered either.
缺省設置: client signing = auto
缺省設置: client use spnego = yes
若是想設置機器名後的說明文字請參考 server string 命令.
缺省設置: No comment string
示例: comment = Fred's Files
因爲這個緣由,若是在加載這個選項的時候發現配置文件名變化了,就會重新的配置文件裏從新加載選項.
這個選項做爲經常使用的替換很是有用.
若是這個配置文件不存在,那麼就不會被加載.(容許你特殊地處理少數客戶的配置文件)
示例: config file = /usr/local/samba/lib/smb.conf.%m
這個特性容許創建一個服務的'模版',能夠很容易的生成類似的服務.注意,被拷貝的服務在配置文件裏必須先於拷貝的服務出現.
缺省設置: no value
示例: copy = otherservice
當生成一個文件的時候,須要知道從dos模式映射到unix下的文件權限.最後的結果用這個參數進行逐位的與運算獲得.這個選項能夠理解成unix下文件的位掩碼.在生成文件的時候,任何沒有設置的位將會從建立模式中去掉.
這個選項的缺省值是從unix的文件建立模式中去掉組和其餘用戶的寫和執行標誌位.
根據這個規則,samba將會把這個選項生成的unix文件建立模式和由force create mode設置的選項進行逐位的或運算,force create mode 的缺省選項是000.
這個選項不會影響目錄建立模式.細節參見directory mode .
參考force create mode以進一步瞭解在建立文件時設置的特殊位.關於建立目錄模式參見directory mode選項.參見 inherit permissions parameter.
Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the administrator wishes to enforce a mask on access control lists also, they need to set the security mask.
缺省設置: create mask = 0744
示例: create mask = 0775
These values correspond to those used on Windows servers.
For example, shares containing roaming profiles can have offline caching disabled using csc policy = disable.
缺省設置: csc policy = manual
示例: csc policy = programs
這能夠保護服務器不被過多的發呆鏈接耗盡資源.
多數客戶端有鏈接斷開後的自動重連功能,因此大多數狀況下,這個選項對用戶應該是透明的
對多數系統建議使用較短的發呆超時的選項.
發呆超時選項被設爲0意味着不會自動斷開鏈接..
缺省設置: deadtime = 0
示例: deadtime = 15
注意要使用這個選項,必須打開 debug timestamp選項.
缺省設置: debug hires timestamp = no
注意要使用這個選項,必須打開 debug timestamp 選項.
缺省設置: debug pid = no
缺省設置: debug timestamp = yes
Note that the parameter must be on for this to have an effect. 注意要使用這個選項,必須打開 debug timestamp選項.
缺省設置: debug uid = no
缺省設置: default case = lower
Most problems with serving printer drivers to Windows NT/2k/XP clients can be traced to a problem with the generated device mode. Certain drivers will do things such as crashing the client's Explorer.exe with a NULL devmode. However, other printer drivers can cause the client's spooler service (spoolsv.exe) to die if the devmode was not created by the driver itself (i.e. smbd generates a default devmode).
This parameter should be used with care and tested with the printer driver in question. It is better to leave the device mode to NULL and let the Windows client set the correct values. Because drivers do not do this all the time, setting default devmode = yes will instruct smbd to generate a default one.
For more information on Windows NT/2k printing and Device Modes, see the MSDN documentation.
缺省設置: default devmode = no
這個選項沒有缺省值. 若是沒給出這個選項的話,對不存在的服務的請求將返回錯誤.
缺省服務通常是那些容許guest ok, read-only的服務.
外在的服務名可能被替換成請求的服務名,這樣就能夠用象%S這樣的宏來作一個通用的服務.
注意在缺省服務選項指定的服務名裏, 字符'_'被映射爲'/'. 這樣可能會出現有趣的事情.
示例:
[global] default service = pub [pub] path = /%S
For a Samba host this means that the printer must be physically deleted from underlying printing system. The deleteprinter command defines a script to be run which will perform the necessary operations for removing the printer from the print system and from smb.conf.
The deleteprinter command is automatically called with only one parameter: "printer name".
Once the deleteprinter command has been executed, smbd will reparse the smb.conf to associated printer no longer exists. If the sharename is still valid, then smbd will return an ACCESS_DENIED error to the client.
參見 addprinter command, printing, show add printer wizard
缺省設置: none
示例: deleteprinter command = /usr/bin/removeprinter
這個選項對於rcs這樣的應用頗有用,在這種狀況下,unix文件的屬主不容許改變權限,dos文件只讀.
缺省設置: delete readonly = no
When executed, smbd will automatically invoke the delete share command with two parameters.
configFile - the location of the global smb.conf file.
shareName - the name of the existing service.
This parameter is only used to remove file shares. To delete printer shares, see the deleteprinter command.
參見 add share command, change share command.
缺省設置: none
示例: delete share command = /usr/local/bin/delshare
缺省設置: delete user from group script =
示例: delete user from group script = /usr/sbin/deluser %u %g
當遠程客戶使用'User Manager for Domains' 或是 rpcclient 從服務器上刪除一個用戶時執行此操做。
這個腳本刪除給定的unix用戶。
缺省設置: delete user script = <空字符串>
示例: delete user script = /usr/local/samba/bin/del_user %u
若是這個選項被設爲了 yes,Samba將試圖遞歸刪除在被禁止目錄裏的任何文件和目錄.這對於整合象NetAtalk這樣的文件服務系統頗有用,它一般會在目錄裏生成Dos/windows用戶看不見的中間文件(e.g. .AppleDouble).
設置delete veto files = yes 使那些有權限的用戶能夠在刪除父目錄的時候透明的刪除子目錄.
參見 veto files 選項.
缺省設置: delete veto files = no
這個設置容許用外部程序代替內部程序來計算總共的磁盤空間和可用的磁盤空間.下面的例子給出了一個能完成這個功能的腳本.
這個外部程序的輸入是文件系統裏一個須要計算的目錄,典型的包括./字符串.以ascii碼返回兩個整數.第一個是總共的磁盤空間(以塊爲單位),第二個是可用塊樹.可選的第三個返回值能夠以字節爲單位給出塊的大小.缺省的塊的大小是1024字節.
注意:這個腳本應該屬主爲root,只有root可寫,而且不能帶有用戶標識位和組標識位(setuid or setgid)!
缺省設置: 缺省用內部程序來計算磁盤容量和可用空間.
示例: dfree command = /usr/local/samba/bin/dfree
以下這個dfree腳本必須是可執行的.
#!/bin/sh df $1 | tail -1 | awk '{print $2" "$4}'
在Sys V一類的系統上多是:
#!/bin/sh /usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
注意在特定的系統上可能須要給出相應的帶有全路徑的命令.
當生成一個路徑的時候,必須指定的目錄權限從dos模式映射到unix模式,而後這個結果和這個選項進行逐位的與運算.這個選項能夠理解成unix模式下的位掩碼.這個選項裏任何沒有設置的位在生成unix下的目錄時將會被去掉
缺省狀況下,這個選項把組和其餘用戶的寫權限位去掉,只容許目錄的屬主對目錄進行修改.
Samba將把這個選項和force directory mode的選項進行逐位的或運算,這個選項缺省時設置爲000(也就是不加額外的限制).
Note that this parameter does not apply to permissions set by Windows NT/2000 ACL editors. If the administrator wishes to enforce a mask on access control lists also, they need to set the directory security mask.
在生成目錄時若是須要設置特殊的模式位,參見force directory mode選項.
關於生成文件時的模式位參見create mode 選項和directory security mask選項.
Also refer to the inherit permissions parameter.
缺省設置: directory mask = 0755
示例: directory mask = 0775
這個選項以掩碼來實現改變權限位,因此在修改時要防止不在掩碼中涉及的那些位.實際上,在這個掩碼中的位0能夠使用戶沒法改變任何東東.
若是沒有明確設定的話,這個選項會用與directory mask選項一樣的值.要容許用戶在目錄中能夠修改全部的user/group/world權限,能夠把這個選項設爲0777.
注意,能訪問samba服務器的用戶經過其它方法也能夠很容易地繞過這個限制,因此對獨立工做的系統來講這個選項是最根本最有用的.不少系統管理的管理員都會把它設爲默認的0777.
參見 force directory security mode, security mask, force security mode 選項。
缺省設置: directory security mask = 0777
示例: directory security mask = 0700
Note that clients that only support netbios won't be able to see your samba server when netbios support is disabled.
缺省設置: disable netbios = no
示例: disable netbios = yes
See also use client driver
Default : disable spoolss = no
缺省設置: display charset = ASCII
示例: display charset = UTF8
注意,NetBISO名的最大長度是15個字符,因此DNS名(或DNS別名)一樣最多隻能有15個字符.
nmbd 在作DNS名查詢的時候將自身複製一份,由於域名查詢是一個阻塞的動做.
參見 wins support 。
缺省設置: dns proxy = yes
缺省設置: domain logons = no
注意,windows NT主域控制器默認狀況老是佔有這個在工做組中的特殊的NetBIOS名,宣稱本身是工做組的主域瀏覽器(也就是說,沒有什麼方法能夠阻止一個Windows NT主域控制器這樣作). 這樣若是設置了這個選項,而且nmbd 在Windows NT以前向工做組宣稱了這個特殊的名字,那麼跨子網的瀏覽行爲會變得奇怪,而且可能會失敗.
If domain logons = yes , then the default behavior is to enable the domain master 選項。 If domain logons is not enabled (the default setting), then neither will domain master be enabled by default.
缺省設置: domain master = auto
注意,Samba對'dont descend'選項的輸入格式十分挑剔.例如他也許要求你輸入./proc而不是僅僅是/proc.實踐是最好的策略.
缺省設置: none (也就是說,全部目錄的內容會正常的傳遞給客戶端)
示例: dont descend = /proc,/dev
The default depends on which charsets you have installed. Samba tries to use charset 850 but falls back to ASCII in case it is not available. Run testparm(1) to check the default on your system.
缺省設置: dos filemode = no
這個選項的主要用於解決Visual C++與Samba的兼容性問題.當共享文件被鎖定時(oplocks選項被設置爲容許),Visual C++使用兩個不一樣的讀取時間的函數調用來檢查文件自從最後一次讀操做以來是否有改變.其中一個函數使用1秒的時間尺度,而另外一個則使用2秒的時間尺度.因爲使用基於2秒的方法要捨去任何的奇數秒,當文件的時間記錄是奇數秒時,Visual C++的兩次函數調用結果就會不一致,Visual C++就會老是認爲文件被改變.設置這個選項能夠使得兩次函數調用的結果一致,Visual C++會很高興的接受這一切.
缺省設置: dos filetime resolution = no
缺省設置: dos filetimes = no
缺省設置: enable rid algorithm = <yes>
想要使加密口令能正確的工做, smbd(8)必須能訪問本地的smbpasswd(5)文件(如何正確設置和維護這個文件,請參閱smbpasswd(8)手冊),或者,設置選項security= [server|domain|ads],這樣設置將使得smbd依賴其它的服務器來幫它鑑別口令.
缺省設置: encrypt passwords = yes
The first enhancement to browse propagation consists of a regular wildcard query to a Samba WINS server for all Domain Master Browsers, followed by a browse synchronization with each of the returned DMBs. The second enhancement consists of a regular randomised browse synchronization with all currently known DMBs.
You may wish to disable this option if you have a problem with empty workgroups not disappearing from browse lists. Due to the restrictions of the browse protocols these enhancements can cause a empty workgroup to stay around forever which can be annoying.
In general you should leave this option enabled as it makes cross-subnet browse propagation much more reliable.
缺省設置: enhanced browsing = yes
缺省設置: no enumports command
示例: enumports command = /usr/bin/listports
這個選項的主要用於解決Visual C++與Samba的兼容性問題.Visual C++生成makefiles文件時, 包含目標文件所依賴的目的目錄. 包含創建目錄的規則. 一樣的, 當NMAKE比較時間屬性時, 它檢查目錄創建時間. 目標目錄不存在的話, 會創建一個;若是存在,它的創建時間老是比它所包含的目標文件的創建時間早.
UNIX的時間規則意味着只要有文件在共享目錄中創建或刪除,Samba將更新關於該目錄創建時間的報告. NMAKE將發現目錄中除了最後創建的文件之外的全部目標文件都過時了(與目錄的創建時間相比較), 而後從新編譯目標文件.設置這個選項值將保證目錄的創建時間早於它裏面的文件,NMAKE就可以正常工做.
缺省設置: fake directory create times = no
當你設置fake oplocks = yes後,smbd(8)老是容許oplock請求, 而無論到底有多少的客戶端在使用這個文件.
在一般狀況下, 使用真實的oplocks支持老是比使用這個選項好.
若是你使用這個選項在一些只讀的共享上(例如: CDROM共享),或者你知道這個共享只可以被一個客戶端所訪問(例如: 客戶主目錄). 你將會注意到性能上的重大提高. 若是你將這個選項用在多個客戶端均可以讀寫的共享上, 因爲客戶可能同時訪問一個共享文件, 這樣會形成文件損壞. 請必定當心使用.
缺省設置: fake oplocks = no
這個選項缺省是容許(也就是, smbd將容許訪問符號連接)
缺省設置: follow symlinks = yes
參見 create mask 來得到關於創建文件時的掩碼的詳細資料。
另外也參見 inherit permissions 參數.
缺省設置: force create mode = 000
示例: force create mode = 0755
這個例子中, 將迫使全部被創建的文檔對"同組/其它(用戶)"有讀和執行權. 對用戶本身有讀/寫/執行權力.
參見 directory mask 來得到關於創建目錄時的掩碼的詳細資料。
另外也參見 inherit permissions參數.
缺省設置: force directory mode = 000
示例: force directory mode = 0755
這個例子中, 將迫使全部被創建的目錄對"同組/其它(用戶)"有讀和進入權. 對用戶本身有讀/寫/進入權力.
此選項以掩碼('or')來實現權限位的改變,因此它強制了任何掩碼中用戶能夠更改的位.實際上,當在修改目錄的安全性時,這個掩碼中的一個0位能夠做爲一組用戶已經設爲'on'的位來看待.
若是沒有明確設定的話,這個選項會用與force directory mode選項一樣的值.要容許用戶在目錄中能夠修改全部的user/group/world權限,能夠把這個選項設爲0000.
注意,能訪問samba服務器的用戶經過其它方法也能夠很容易地繞過這個限制,因此這個參數只對獨立工做的應用系統來講有用.不少系統管理的管理員都會把它設爲默認的0000.
參見 directory security mask, security mask, force security mode 參數。
缺省設置: force directory security mode = 0
示例: force directory security mode = 700
在samba 2.0.5及更新的版本中這個選項已經按下面的方法有了一些擴展功能.若是在此列出的組名有一個'+'字符加在名稱前的話,當前用戶正在訪問的共享資源只有初始組被缺省分配到這個組中,而可能的狀況是用戶已是其它組成員了.這樣,管理員能夠決定只有在特殊組裏的用戶才能以設定的組身份創建文件,更有益於全部權分配管理.例如,設定force group = +sys的話,只有在sys組裏的用戶才能在訪問samba共享資源時擁有缺省的初始組標識.而其它全部用戶保留他們原始的組標識.
若是又設定了 force user選項的話,force group選項中指定的組將會越過在 force user中指定的初始組. If the force user parameter is also set the group specified in force group will override the primary group set in force user.
參見 force user選項.
缺省設置: no forced group
示例: force group = agroup
此選項以掩碼('or')來實現權限位的改變,因此它強制了任何掩碼中用戶能夠更改的位.實際上,當在修改目錄的安全性時,這個掩碼中的一個0位能夠做爲一組用戶已經設爲'on'的位來看待.
若是沒有明確設定的話,這個選項會用與force create mode選項一樣的值.要容許用戶在文件上能夠修改全部的user/group/world權限,能夠把這個選項設爲000.
注意,能訪問samba服務器的用戶經過其它方法能夠很容易地繞過這個限制,因此這個選項對獨立工做的系統來講纔有用的.不少系統管理的管理員都會把它設爲默認的0000.
參見 force directory security mode, directory security mask, security mask 參數。
缺省設置: force security mode = 0
示例: force security mode = 700
這個選項只有當一個鏈接創建起來後纔有用. 在創建鏈接的使用, 用戶仍是必須有合法的用戶名和口令. 一旦鏈接創建起來, 全部的操做將強迫以這個名字進行, 而無論它是以什麼名字登陸的.
samba 2.0.5和更新的版本中這個選項會致使用戶的初始組被做爲全部文件操做的初始組.2.0.5之前的初始組被容許做爲聯接用戶的初始組(這是個bug)
參見 force group 選項。
缺省設置: no forced user
示例: force user = auser
缺省設置: fstype = NTFS
示例: fstype = Samba
This parameter should specify the path to a script that queries the quota information for the specified user/group for the partition that the specified directory is on.
Such a script should take 3 arguments:
directory
type of query
uid of user or gid of group
The type of query can be one of :
1 - user quotas
2 - user default quotas (uid = -1)
3 - group quotas
4 - group default quotas (gid = -1)
This script should print its output according to the following format:
Line 1 - quota flags (0 = no quotas, 1 = quotas enabled, 2 = quotas enabled and enforced)
Line 2 - number of currently used blocks
Line 3 - the softlimit number of blocks
Line 4 - the hardlimit number of blocks
Line 5 - currently used number of inodes
Line 6 - the softlimit number of inodes
Line 7 - the hardlimit number of inodes
Line 8(optional) - the number of bytes in a block(default is 1024)
參見 set quota command 選項。
缺省設置: get quota command =
示例: get quota command = /usr/local/sbin/query_quota
缺省設置: getwd cache = yes
在某些系統上,缺省的訪問用戶名"nobody"帳戶可能不能打印.若是遇到這種狀況,請使用其它的帳戶名(例如ftp)。想要測試這種狀況,能夠試着用來訪帳戶登陸(能夠用su -命令),而後,使用系統打印命令lpr(1)或lp(1).
這個參數不接受%宏,由於Samba系統的不少組件要正確工做都須要這個值是一個常量。
缺省設置: 編譯時指定,一般是"nobody"
示例: guest account = ftp
這個選項抵消了設置 restrict anonymous = 2 的好處。
參見下面的 security來得到更多信息。
缺省設置: guest ok = no
參見下面的 security 參數來得到更多信息。
缺省設置: guest only = no
缺省設置: hide dot files = yes
每一個條目必須以"/"分隔以便容許在條目中使用空格.能夠使用DOS風格的通配符"*"和"?"匹配多個目錄和文件。
每個條目必須使用UNIX格式的路徑,而不是DOS格式的路徑,同時,不能包含UNIX路徑分隔符"/".
注意:大小寫敏感的特性也適用於隱含文件.
設置這個選項會影響Samba的性能,它會迫使系統檢查全部的文件和目錄以肯定是否與它的所要尋找的項目匹配.
參見 hide dot files, veto files 和 case sensitive.
缺省設置: 沒有隱藏文件
示例: hide files = /.*/DesktopFolderDB/TrashFor%m/resource.frk/
上面的例子中的文件從Thursby共享出來,給Macintosh的SMB客戶端(DAVE),供內部使用,仍然隱藏了"."打頭的文件.
缺省設置: hide local users = no
缺省設置: hide special files = no
缺省設置: hide unreadable = no
缺省設置: hide unwriteable = no
username server:/some/file/system
程序從":"號前取得服務器名字.未來也許會有更好的解釋系統來處理不一樣的映射格式,固然,也包括Amd(另外一種自動裝載方式)映射.
須要系統中有一個運行的NIS客戶來使這個選項工做。
參見 nis homedir , domain logons .
缺省設置: homedir map = <空字符串>
示例: homedir map = amd.homedir
參見 msdfs root share level 選項。 For more information on setting up a Dfs tree on Samba, refer to ???.
缺省設置: host msdfs = no
缺省設置: hostname lookups = yes
示例: hostname lookups = no
這個選項是一個由逗號,空格或者tab字符隔開的一組主機名.列入其中的主機才容許訪問.
若是該選項出如今[global]段中,它會做用於全部服務而忽略單個服務所做的不一樣設置.
你能夠用ip地址或主機名來指定主機.好比,你能夠用相似 allow hosts = 150.203.5. 來限定只容許訪問在這個c類子網中的主機.hosts_access(5)中詳細描述了關於這個選項設置的完整語法.注意到你的系統中也許沒有這個參考手冊,這裏也做一個簡單的說明.
注意,本機地址127.0.0.1 老是容許鏈接,除非在hosts deny 選項中加以禁止.
你也能夠使用子網號/子網掩碼對來指定主機.若是你的網絡支持網絡組,你還能夠用網絡組名來指定組內的主機.EXCEPT(除了...)關鍵字能夠在使用了通配符的狀況下起到限定做用.
Example 1: 容許150.203.*.* 中除了一臺機器以外的全部IP訪問
hosts allow = 150.203. EXCEPT 150.203.6.66
Example 2: 容許知足給定的子網號/子網掩碼的IP訪問
hosts allow = 150.203.15.0/255.255.255.0
Example 3: 容許一系列主機訪問
hosts allow = lapland, arvidsjaur
Example 4: 容許NIS網絡組"foonet"訪問,可是禁止其中的一臺主機
hosts allow = @foonet
hosts deny = pirate
注意,訪問時仍是須要有適當的用戶級口令.
參見testparm(1) 來檢測主機是否能夠按照你但願的方式被訪問.
缺省設置: none (也就是說,全部機器均可以訪問)
示例: allow hosts = 150.203.5. myhost.mynet.edu.au
缺省設置: none (沒有禁止訪問的主機)
示例: hosts deny = 150.203.4. badhost.mynet.edu.au
不要把這個選項和hosts allow 搞混了,那是關於控制主機對服務的訪問的,用於管理對來訪者的服務.而 hosts equiv是用於支持那些不對samba提供口令的NT客戶的.
注意:使用hosts equiv 可能會成爲一個很大的安全漏洞.這是由於你相信發起訪問的PC提供了正確的用戶名.找一臺PC來提供一個假的用戶名是很容易的.我建議你只有在徹底明白你在幹什麼的狀況下才使用hosts equiv選項,或者在你本身的家裏(那裏有你能夠徹底信任的配偶和孩子)使用它.僅僅是在你徹底能夠信任他們的時候才用 :-)
缺省設置: no host equivalences
示例: hosts equiv = /etc/hosts.equiv
缺省設置: idmap backend = <空字符串>
示例: idmap backend = ldap:ldap://ldapslave.example.com
The availability of an idmap gid range is essential for correct operation of all group mapping.
缺省設置: idmap gid = <空字符串>
示例: idmap gid = 10000-20000
缺省設置: idmap uid = <空字符串>
示例: idmap uid = 10000-20000
它支持標準替換,除%u , %P 和 %S之外.
缺省設置: 沒有包含其餘文件
示例: include = /usr/local/samba/lib/admin_smb.conf
缺省設置: inherit acls = no
New directories inherit the mode of the parent directory, including bits such as setgid.
New files inherit their read/write bits from the parent directory. Their execute bits continue to be determined by map archive , map hidden and map system as usual.
Note that the setuid bit is never set via inheritance (the code explicitly prohibits this).
This can be particularly useful on large systems with many users, perhaps several thousand, to allow a single [homes] share to be used flexibly by each user.
參見 create mask , directory mask, force create mode and force directory mode .
缺省設置: inherit permissions = no
這個選項的內容是一個接口字符串的列表, 每一個字符串能夠是下列任何一種格式:
一個網絡接口名(例如eth0).它能夠包含象在shell風格的通配符如eth*來匹配任何以子字符品"eth"起始的網絡接口.
一個IP地址.這種狀況下,網絡掩碼是從內核中得到的接口列表中檢測的.
一個IP/掩碼對.
一個廣播地址/掩碼對.
"mask"選項能夠是一個位長度(例如C類網絡能夠是24)或者是以點分格式出現的完整網絡地址掩碼.
"IP"選項能夠是完整點分十六進制IP地址或是按操做系統一般使用的主機名解析機制查找的主機名.
例如,下面這一行:
interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0
將配置三個網絡接口,對應eth0設備以及IP地址192.168.2.10 和192.168.3.10。後兩個接口的網絡掩碼將設置爲255.255.255.0。
參見bind interfaces only.
缺省設置: 除了127.0.0.1 以外的全部活動接口 that are broadcast capable
以@開頭的用戶名首先被看成NIS網絡組名(若是你的系統支持NIS的話),若是在NIS的網絡組數據庫中找不到這個組,那麼這個名字就被看成一個UNIX用戶組名來處理.
以+開頭的用戶名僅表示UNIX用戶組名,以&開頭的用戶名僅表示NIX網絡組名(這個設置要求你的系統中有NIS在運行).'+'和'&'符號能夠以任何順序出如今用戶組名前,所以,你能夠指定對這個名稱的查找次序,好比+&group表示先在UNIX用戶組中查找,再在NIS網絡組中查找,而&+group則相反,先在NIX網絡組中查找,再到UNIX用戶組中查找.(這與使用@前綴的效果相同).
當前的服務名能夠用%S來表示,這在[homes]段中是頗有用的.
參見 valid users .
缺省設置: 沒有非法用戶
示例: invalid users = root fred admin @wheel
一般,若是用於鏈接的socket使用了SO_KEEPALIVE屬性設置(參見socket options),那麼發送保持鏈接的包是不須要的.基本上,除非你遇到了某些困難,這個選項是用不到的.
缺省設置: keepalive = 300
示例: keepalive = 600
This parameter is only usd when your kernel supports change notification to user programs, using the F_NOTIFY fcntl.
缺省設置: Yes
內核機會性鎖定操做使得本地UNIX進程或NFS對文件進行操做時能夠鎖定(凍結)smbd(8)對同一個文件的oplocks 操做.這能夠保持SMB/CIFS,NFS和本地文件操做之間的數據一致性.(這是一個很cool的特性哦 :-)
若是你的系統支持這個設置,缺省設置就是on(打開),若是系統不支持,缺省設置就是Off(關閉).你根本沒必要去管這個選項.
參見 oplocks 和 level2 oplocks 參數.
缺省設置: kernel oplocks = yes
The LANMAN encrypted response is easily broken, due to it's case-insensitive nature, and the choice of algorithm. Servers without Windows 95/98 or MS DOS clients are advised to disable this option.
Unlike the encypt passwords option, this parameter cannot alter client behaviour, and the LANMAN response will still be sent over the network. See the client lanman auth to disable this for Samba's clients (such as smbclient)
If this option, and ntlm auth are both disabled, then only NTLMv2 logins will be permited. Not all clients support NTLMv2, and most will require special configuration to us it.
Default : lanman auth = yes
缺省設置: large readwrite = yes
缺省設置: ldap delete dn = no
缺省設置: ldap filter = (&(uid=%u)(objectclass=sambaAccount))
缺省設置: none
示例: dc=samba,ou=Groups
缺省設置: none
示例: ou=Idmap,dc=samba,dc=org
缺省設置: none
The ldap passwd sync can be set to one of three values:
Yes = Try to update the LDAP, NT and LM passwords and update the pwdLastSet time.
No = Update NT and LM passwords and update the pwdLastSet time.
Only = Only update the LDAP password and let the LDAP server do the rest.
缺省設置: ldap passwd sync = no
這個選項控制用於和LDAP服務器通信的tcp端口號。默認應用標準的LDAP端口636。
參見: ldap ssl
Default : ldap port = 636 ; 若是 ldap ssl = on
Default : ldap port = 389 ; 若是 ldap ssl = off
這個選項應當包含ldap目錄服務器的FQDN,用來查詢和定位用戶賬戶信息。
Default : ldap server = localhost
The ldap ssl can be set to one of three values:
Off = Never use SSL when querying the directory.
Start_tls = Use the LDAPv3 StartTLS extended operation (RFC2830) for communicating with the directory server.
On = Use SSL on the ldaps port when contacting the ldap server. Only available when the backwards-compatiblity --with-ldapsam option is specified to configure. See passdb backend
Default : ldap ssl = start_tls
缺省設置: none
缺省設置: none
2級,或者只讀oplocks容許Windows NT客戶在文件中能夠保持一個oplocks,一旦第二個用戶請求同一文件時能夠從讀寫oplocks級降爲只讀oplocks(而不是像傳統的作法,保持惟一的oplocks,在第二次打開時釋放全部的oplocks).這樣就能夠容許支持2級oplocks的文件打開者緩存用於只讀的文件(也就是說,他們的寫和鎖定請求不可能被緩衝),而且使只讀文件的大量訪問提高性能(例如.exe文件).
一旦在擁有隻讀oplocks的客戶中有一位對文件進行了寫操做,全部的客戶都會被通知(不須要回復及等待), told to break their oplocks to "none",而後刪除全部read-ahead caches.
推薦打開這個選項,爲共享的可執行程序提升訪問速度。
更多關於2級oplocks的討論請查看CIFS的規約.
當前,若是使用了kernel oplocks的話,就不會承認2級oplocks(即便把那個選項設爲yes也沒用).還要注意,oplocks 選項必須在共享上被設成yes纔有效果.
參見 oplocks 和 kernel oplocks 選項。
缺省設置: level2 oplocks = yes
參見 lm interval.
缺省設置: lm announce = auto
示例: lm announce = yes
參見lm announce.
缺省設置: lm interval = 60
示例: lm interval = 120
缺省設置: load printers = yes
設置這個值爲 no 將使 nmbd 永遠不會 成爲主控瀏覽器。
缺省設置: local master = yes
缺省設置: lock directory = ${prefix}/var/locks
示例: lock directory = /var/run/samba/locks
若是 locking = no ,全部的鎖定請求和解除鎖定請求將表現爲成功執行.對鎖定的查詢將會顯示沒有鎖定.
若是locking = yes 服務器將執行真正的鎖定。
這個選項可能對只讀文件系統有用,由於它可能不須要鎖定(例如:CDROM).即便在這種狀況下,咱們也不真正推薦使用no.
要特別當心,無論是全局的關閉這個選項或者在某個服務上關閉這個選項,都有可能因爲缺乏鎖定而致使數據損壞.其實,你根本就不須要設置這個選項.
缺省設置: locking = yes
缺省設置: lock spin count = 3
缺省設置: lock spin time = 10
這個選項支持標準的文件名代換變量,容許方便的爲每一個用戶或者機器設置專用的日誌文件.
示例: log file = /usr/local/samba/var/log.%m
缺省的調試水平將在命令行裏定義,若是沒有定義,調試水平爲零.
示例: log level = 3 passdb:5 auth:10 winbind:2
注意:這個選項只有在Samba是登陸服務器時纔有用.
缺省設置: logon drive = z:
示例: logon drive = h:
C:\> NET USE H: /HOME
這樣的命令。
這個選項支持標準的命令選項替換,方便爲每一個用戶或者機器提供登陸腳本.
This parameter can be used with Win9X workstations to ensure that roaming profiles are stored in a subdirectory of the user's home directory. This is done in the following way:
logon home = \%NU
rofile
This tells Samba to return the above string, with substitutions made when a client requests the info, generally in a NetUserGetInfo request. Win9X clients truncate the info to \\server\share when a user does net use /home but use the whole string when dealing with profiles.
Note that in prior versions of Samba, the logon path was returned rather than logon home. This broke net use /home but allowed profiles outside the home directory. The current implementation is correct, and can be used for profiles if you use the above trick.
注意,這個選項只在Samba被設置成爲登陸服務器logon server時才起做用.
缺省設置: logon home = "\%NU"
示例: logon home = "\remote_smb_serverU"
這個選項支持標準替換,容許你爲每個用戶或機器設置不一樣的登陸腳本.它也能夠指定那些顯示在Windows NT客戶端上的"應用程序數據"(桌面,開始菜單,網上鄰居和程序等文件夾和他們的內容).
指定的共享資源和路徑必須是用戶可讀的,這樣,設定的選項和目錄才能被Windows NT客戶端裝載使用.這個共享資源在用戶第一次登陸時必須是可寫的,這樣Windows NT客戶端才能創建NTuser.dat文件及其餘目錄.
而後,這些目錄以及其中的任何內容均可以根據須要設置爲只讀的.把NTuser.dat文件設置成只讀是不明智的,你應該把它更名成NTuser.man(一個強制使用(MANdatory)的user.dat)來達到一樣的目的.
Windows終端有時候即便沒有用戶登陸也會保持對[homes]共享資源的鏈接.所以,logon path不能包含對homes共享資源的任何參照(也就是說,把這個選項設置成相似\\%N\HOMES\profile_path會引發問題).
這個選項支持標準替換,容許你爲不一樣的機器或用戶設置不一樣的登陸腳本.
注意,這個選項只有在Samba被設置成爲登陸服務器logon server的時候才起做用.
缺省設置: logon path = \\%N\%U\profile
示例: logon path = \\PROFILESERVER\PROFILE\%U
腳本文件的存放位置必須是相對於[netlogon]服務中指明的目錄路徑,舉例來講,若是[netlogon]服務指定了了一個path是/usr/local/samba/netlogon,而logon script = STARTUP.BAT, 那麼將要下載到客戶端執行的文件的實際存放位置是:
/usr/local/samba/netlogon/STARTUP.BAT
登陸腳本的內容包含什麼,徹底由你決定.咱們建議包含這個指令:NET TIME \SERVER /SET /YES,它強迫每一臺機器的時間和服務器的時間同步(以服務器的時間爲準);另外一個建議是映射公共工具盤:NET USE U:\\SERVER\"公共工具目錄" 例如:
NET USE Q:\SERVERISO9001_QA
注意:在一個有安全要求的系統環境中,特別重要的是要記住不要容許客戶在[netlogon]上有寫的權限,也不要給以客戶改寫登陸腳本文件的權利.若是容許客戶隨意的修改,安全規則就給撕裂了一個口子.
這個選項支持標準的置換規則,容許你爲每一個不一樣的用戶或機器定製不一樣的登陸腳本.
注意,這個選項只有在Samba設置爲登陸服務器時才起做用.
缺省設置: no logon script defined
示例: logon script = scriptsU.bat
這個指令應該是一個能夠根據打印機名和做業號中斷打印做業的程序或腳本.實現這個操做的一個辦法是使用做業優先級,優先級別過低的做業不會被髮送到打印機上.
用%p置換能夠取得打印機名,而%j會被打印做業號(一個整數)置換.在HPUX系統中(參見printing=hpux ),若是給lpq命令加上-p%p選項,打印做業會顯示其執行狀態,具體的說,若是做業的優先級低於阻塞級別,它會顯示'PAUSED'狀態,反之,若是做業的優先級等於或高於阻塞級別,它會顯示'SPOOLED'或'PRINTING'狀態.
注意,在這個設置中使用絕對路徑是一個好習慣,由於這個路徑有可能不在服務器的PATH環境變量中.
參見 printing parameter選項.
缺省設置: 目前這個選項沒有缺省設置,除非printing選項設置SYSV,在這種狀況下,缺省參數是:
lp -i %p-%j -H hold
或者在printing選項設置爲softq時,缺省選項是:
qstat -s -j%j -h
在HPUX系統中的例子: lppause command = /usr/bin/lpalt %p-%j -p0
緩衝文件被存放在/tmp/lpq.xxxx文件中,其中的xxxx是正在使用的lpq命令哈希表.
這個選項的缺省值是10秒,這就是說之前相同的lpq命令的緩衝內容將在週期爲10秒內被使用.若是lpq命令很是慢的話,能夠取稍大的值.
把這個值設爲0就徹底禁止了緩衝技術的使用.
參見 printing 選項.
缺省設置: lpq cache time = 10
示例: lpq cache time = 30
這個命令應該是一個只以打印機名做爲選項並能夠輸出打印機狀態信息的程序或腳本.
一般支持九種打印機狀態信息:CUPS, BSD,AIX,LPRNG,PLP,SYSV,HPUX,QNX和SOFTQ.而這些正好覆蓋了大多數的UNIX系統.你能夠用printing =選項來控制到底要用哪一種類型.
有些客戶端(特別是Windows for Workgroups)可能不能正確地向打印機發送聯接號以得到狀態信息.對此,服務器會向客戶報告它所聯接的首個打印服務.這樣的狀況只當聯接號發送非法時纔會發生.
若是使用%p變量的話,系統會在此處放置打印機名.不然在命令後放置打印機名.
注意,當服務器不能得到PATH變量的話,以絕對路徑來描述lpq command是個好習慣. 當與CUPS庫編譯鏈接時,不須要lpq command,由於smbd將使用庫調用來得到打印隊列列表。
參見 printing 選項.
缺省設置: 依賴於 printing 的設置狀況
示例: lpq command = /usr/bin/lpq -P%p
此命令應該是一個以打印機名和要恢復的打印任務號做爲選項的程序或腳本.參見lppause command 參數。
若是使用%p變量的話,系統會在此處放置打印機名.用%j來代替打印任務號,固然是用整數形式羅.
注意,當服務器不能得到PATH變量的話,以絕對路徑來描述lpresume command是個好習慣
參見 printing 選項.
缺省設置: 當前沒有缺省設置,除非 printing 選項是 SYSV, 此時默認是
lp -i %p-%j -H resume
或者若是printing 選項是 SOFTQ, 那麼默認是:
qstat -s -j%j -r
HPUX的示例: lpresume command = /usr/bin/lpalt %p-%j -p2
此命令應該是一個使用打印機名和打印任務號的程序或腳本,而且執行它們能夠刪掉打印任務.
若是使用%p變量的話,系統會在此處放置打印機名.用%j來代替打印任務號,固然是也用整數形式羅.
注意,當不能從服務器得到PATH變量的話,以絕對路徑來描述lprm command是個好習慣.
參見printing 選項.
缺省設置: 依賴於 printing 選項設置
示例 1: lprm command = /usr/bin/lprm -P%p %j
示例 2: lprm command = /usr/bin/cancel %p-%j
參見 smbpasswd(8), 和 security = domain 選項.
缺省設置: machine password timeout = 604800
警告:若是兩個客戶在一樣的目錄下用相同的magic script,輸出文件內容是沒法肯定的.
缺省設置: magic output = <magic script name>.out
示例: magic output = myfile.txt
以這種方式運行的腳本將會在完成之後被刪除,只要權限容許的話.
若是腳本產生了輸出的話,這些信息就被送到magic output選項指定的文件中(見以上描述).
注意,一些命令解釋器不能解釋包含CR/LF而不是CR回車換行符的腳本.magic腳本必須是能夠被運行的(就象在本地主機運行同樣),而有些腳本在某些主機上或某些shell下可能會在dos客戶端進行過濾處理.
magic腳本仍處於實驗階段,因此不能對此徹底依賴.
缺省設置: 無。禁止使用magic script.
示例: magic script = user.csh
缺省設置: mangle case = no
因此若是要將 html 映射爲 htm 你應當這樣:
mangled map = (*.html *.htm)
有一個很是有用的經驗是刪掉在CDROM光盤上一些文件名後面討人厭的;1(只有在一些UNIX能夠看到它們).爲此能夠這樣映射:(*;1 *;).
缺省設置: 沒有 mangled map
示例: mangled map = (*;1 *;)
NAME MANGLING部分有更多關於如何控制這類處理的詳細信息.
若是使用了這種映射,那麼其算法就象下面這樣:
把文件名最後一個點符號前面首五個字母數字字符強制轉換成大寫,做爲要映射名字的首五個字符.
在要映射名字的起始部分加上"~"符號,後面跟兩個字符的特殊序列字串,而這個序列字串是由原始的文件名而來(也就是:原文件名去掉最後的文件擴展名).只有當文件的擴展名含有大寫字母或長於三個字符時,文件的最後擴展名才被包含在散列計算中.
注意,若是你不喜歡'~'的話,能夠用mangling char選項來指定你想要的字符.
最後,擴展名部分的前三個字符會被保留,強制轉換到大寫並做爲映射後名字的擴展名.最後的擴展名就是原始文件名中最後一個'.'右面的那部分.若是文件名中沒有'.',那麼映射後的文件名也沒有擴展名部分(除非用了"hidden files" - 參見後面的介紹).
unix的文件名若是以點開始,那麼比如DOS中的隱藏文件.這些文件映射後的文件名就會拿掉點符號並用"___"來做爲它的擴展名,而無論原來的擴展名是什麼("___"是三個下劃線).
大寫字母數字字符組成了兩位散列值.
若是目錄中的文件與要映射的文件名使用了相同的前五位字符,這樣的算法會致使名稱衝突,不過發生衝突的可能性是1/1300.
名稱映射容許當須要保留unix長文件名時在unix目錄與Windows/DOS之間拷貝文件.從Windows/DOS中拷過來的unix文件能夠更換新的擴展名並保留一樣的主文件名.名稱映射並不會在轉換時更改什麼東西.
缺省設置: mangled names = yes
棧裏保存了最近映射的基本文件名(擴展名只有在超過3個字符或者包含大寫字符時纔會保留).
棧值設得稍大一些,對於映射unix的長文件名操做會更順利一些.可是,它會使目錄訪問變得更慢;小一些的棧能夠保存在服務器的內存中(每一個棧元素佔256個字節).
並不保證在轉換長文件名時絕對正確無誤,準備好面對可能出現的驚奇.
缺省設置: mangled stack = 50
示例: mangled stack = 100
mangle prefix is effective only when mangling method is hash2.
缺省設置: mangle prefix = 1
示例: mangle prefix = 4
缺省設置: mangling char = ~
示例: mangling char = ^
缺省設置: mangling method = hash2
示例: mangling method = hash
缺省設置: map acl inherit = no
注意這個選項須要在create mask忻揮信懦募糝韉鬧蔥腥ㄏ尬?也就是說它必須包含100).參見create mask選項中的描述.
缺省設置: map archive = yes
注意這個選項須要在create mask中沒有排除全部用戶的執行權限位(也就是說它必須包含001).參見create mask選項中的描述.
缺省設置: map hidden = no
注意這個選項須要在create mask中沒有排除組用戶的執行權限位(也就是說它必須包含010).參見create mask選項中的描述.
缺省設置: map system = no
這時,選項會有三種不一樣的值,分別通知smbd(8)在用戶以非法身份登陸時做何相應處理.
這三種設定是:
Never - 意思是用戶登陸時用了個非法口令而且被服務器所拒.這是個缺省值.
Bad User - 意思是用戶登陸時用了非法口令而且被服務器所拒,除非用戶名不存在,不然也能夠以來賓身份登陸並映射到對應的guest account帳號.
Bad Password - 意思是用戶登陸時即便用了非法口令,可是還會以來賓身份登陸並映射到對應的guest帳號.可能出現這樣的問題,就是用戶雖然輸錯了口令,卻很是平靜地以「來賓」身份登陸到系統上。他們不明白爲何他們不能訪問那些他們認爲能夠訪問的資源,由於在登陸時沒有任何信息提示他們輸錯了口令。因此應該當心使用它,以免沒必要要的麻煩. Helpdesk services will hate you if you set the map to guest parameter this way :-).
注意當使用共享級之外的其它安全模式時,要設定這個選項,以使"Guest"共享資源服務發揮做用.由於在這些安全級模式中,用戶請求的共享資源名在服務器成功驗證用戶登陸前不會發送到服務器做處理,因此服務器就在不能處理聯接驗證結果時爲聯接提供"Guest"共享.
對於那些之前的版本,這個選項會映射到編譯時所用的local.h文件裏定義的GUEST_SESSSETUP變量的值.
缺省設置: map to guest = Never
示例: map to guest = Bad User
爲了實現這樣的功能,系統會使用記錄鎖定文件.鎖定文件存放在lock directory選項指定的目錄中.
缺省設置: max connections = 0
示例: max connections = 10
注意這個選項並非限制管理員往磁盤上存放數據的容量.在上面所說的狀況中,管理員仍然能夠存放超過100M的數據到磁盤上,但若是客戶查詢剩餘磁盤空間或磁盤總空間的話,所獲得的結果就只在這個 max disk size指定的容量範圍以內.
使用這個選項主要是爲了對一些瘋狂使用磁盤空間的軟件進行必定的限制,特別是它們可能會使用超過1G上以的磁盤空間.
把這個選項設爲0說明沒有限制.
缺省設置: max disk size = 0
示例: max disk size = 1000
把這個選項設爲0說明沒有限制.
缺省設置: max log size = 5000
示例: max log size = 1000
缺省設置: max mux = 50
打開文件極限一般用UNIX每進程最大文件描述符數來限制更好,因此你不須要去碰這個選項的.
缺省設置: max open files = 10000
缺省設置: max print jobs = 1000
示例: max print jobs = 5000
可能的值是:
CORE: 早期版本,不接受用戶名.
COREPLUS: 在CORE的基礎上改進了一些性能.
LANMAN1: 第一個比較流行的協議,支持長文件名.
LANMAN2: 對LANMAN1進行了更新.
NT1: 目前用於Windows NT,通常稱爲CIFS.
一般,此選項沒必要設定,由於在SMB協議中會自動協商並選擇合適的協議.
參見 min protocol
缺省設置: max protocol = NT1
示例: max protocol = LANMAN1
缺省設置: max reported print jobs = 0
示例: max reported print jobs = 1000
缺省設置: max smbd processes = 0 ## no limit
示例: max smbd processes = 1000
缺省設置: max ttl = 259200
參見 min wins ttl 選項.
缺省設置: max wins ttl = 518400
缺省設置: max xmit = 65535
示例: max xmit = 8192
一般這個命令所作之事都取決於你的想象.
例如:
message command = csh -c 'xedit %s;rm %s' &
這個命令用xedit發出一條信息,而後再刪除它.注意很重要的一點是這個命令應該當即返回.這就是爲何在行末用'&'的緣由.若是它沒有當即返回的話,計算機可能會在發送信息時當掉的(不過通常都會在30秒後恢復).
全部信息都被以全局訪客用戶身份發送.命令能夠使用標準的替換符,不過%u將不會有效(在這裏用%U可能更好).
除了標準替換的部分,還能夠應用一些附加的替換,好比:
%s =包含消息的文件名
%t = 發送信息的目標(極可能是服務器名).
%f = 信息的來源.
你能夠用這個命令來發送郵件或者你想要的內容.若是你有關於發送內容的好主意請通知開發人員.
有個例子能夠以郵件形式發送信息給root:
message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
若是沒有指定發送信息所用的命令,那麼這個信息並不會被髮出,同時Samba向發送者報告出錯.不幸的是WfWg(Windows for Workgrups)徹底忽略出錯代碼,提示信息已被髮出.
若是你想要悄悄地刪掉它的話請用:
message command = rm %s
缺省設置: 沒有 message command
示例: message command = csh -c 'xedit %s; rm %s' &
參見 unix password sync, passwd program和 passwd chat debug 選項.
缺省設置: min password length = 5
參見 printing 選項。
缺省設置: min print space = 0
示例: min print space = 2000
If you are viewing this parameter as a security measure, you should also refer to the lanman auth 選項。 Otherwise, you should never need to change this 選項。
Default : min protocol = CORE
Example : min protocol = NT1 # disable DOS clients
缺省設置: min wins ttl = 21600
Only Dfs roots can act as proxy shares. Take a look at the msdfs root and host msdfs options to find out how to set up a Dfs root share.
示例: msdfs proxy = \\otherserver\someshare
參見 host msdfs
缺省設置: msdfs root = no
缺省設置: name cache timeout = 660
示例: name cache timeout = 0
這些名字解析選項是:"lmhosts","host","wins"和"bcast".它們決定了名字解析是以以下方式的:
lmhosts : 在samba的lmhosts文件中查找IP地址.若是lmhosts文件的內容行中沒有名字類型附加在NetBIOS名上時(參見lmhosts (5)中的詳細描述),任何類型的名字均可以匹配這個查詢.
host : 執行標準的主機名到IP地址的解析操做,此操做會使用系統的/etc/hosts,NIS或者是DNS來查詢.具體方法取決於操做系統,在IRIX和Solaris中解析名字的方法多是由/etc/nsswitch.conf文件來控制的.注意此方法只適用於對被查詢的NetBIOS名字類型爲0x20(服務器)或者是0x1c(域控制器)時纔有用,其它類型都會被忽略.後一種狀況只在活動目錄域中有用,返回一個匹配_ldap._tcp.domain 的SRV RR條目的DNS 查詢。
wins : 向列在wins server選項中的服務器查詢一個名字對應的IP地址.若是沒有指定WINS服務器,那麼此方法就被略過了.
bcast : 向在interfaces選項中列出的每個已知本地網絡接口進行廣播來做查詢.這是最不可信的名字解析方法,除非目標主機就在本地子網中.
缺省設置: name resolve order = lmhosts host wins bcast
示例: name resolve order = lmhosts bcast host
在上例中首先檢查本地lmhosts文件,而後嘗試廣播,接下來就是用一般的系統主機名查詢方式了.
When Samba is functioning in ADS security mode (security = ads) it is advised to use following settings for name resolve order:
name resolve order = wins bcast
DC lookups will still be done via DNS, but fallbacks to netbios names will not inundate your DNS servers with needless querys for DOMAIN<0x1c> lookups.
參見 netbios name 選項。
缺省設置: 空字符串 (沒有附加的名字)
示例: netbios aliases = TEST TEST1 TEST2
參見 netbios aliases 選項
缺省設置: machine DNS name
示例: netbios name = MYNAME
若是samba登陸服務器不是做爲真正主目錄服務器而是經過NFS來實現,卻通知用戶以SMB服務器來使用主目錄時,用戶裝載主目錄來進行訪問須要兩個網絡跳步(一個以SMB方式,另外一個以NFS方式裝載).這樣的使用方式是很是慢的.
此選項容許當Samba在主目錄服務器方式運行時讓samba反饋目錄服務器而非登陸服務器上的主共享資源,這樣samba用戶能夠直接從目錄服務器上裝載目錄.當samba把目錄共享資源反饋給用戶,這時它會參考homedir map選項指定的NIS映射表而後再反饋表中列出的服務.
注意要使此項起做用必須有一個運做中的NIS系統,而且samba服務器必須是一個登陸服務器。
缺省設置: nis homedir = no
缺省設置: nt acl support = yes
If this option, and lanman auth are both disabled, then only NTLMv2 logins will be permited. Not all clients support NTLMv2, and most will require special configuration to us it.
Default : ntlm auth = yes
缺省設置: nt pipe support = yes
You should not need to ever disable this 選項。
缺省設置: nt status support = yes
參見smbpasswd(5).
缺省設置: null passwords = no
缺省設置: obey pam restrictions = no
要注意的是上面的說法也代表了samba並不會從服務名而推演出相應的用戶名.這樣的話對於[homes]段就比較麻煩了.要避免麻煩的話須要用user = %S,這句就代表你的用戶列表user正好就是這個服務資源名,這時的主目錄名就是用戶名.
參見 user 選項。
缺省設置: only user = no
除非你理解了samba的oplock代碼,不然不要改變這個選項!
缺省設置: oplock break wait time = 0
簡單地說,這個選項指定了一個數字,若是爭奪相同文件的用戶數量超過了此設定極限的話,即便有請求,smbd(8)也再也不承認oplock的操做了.這樣的話smbd就象Windows NT同樣的運行.
除非你理解了samba的oplock代碼,不然不要改變這個選項!
缺省設置: oplock contention limit = 2
oplocks會有選擇性地關閉每個基本共享資源上的特定文件.參見 veto oplock files 選項.在有些系統上會經過最底層的操做系統確認oplocks.這樣就能夠在全部的訪問與oplocked文件中進行數據同步,而無論此訪問是經過samba或NFS或者是本地的UNIX進程.參見kernel oplocks選項查看細節.
參見 kernel oplocks 以及 level2 oplocks parameters.
缺省設置: oplocks = yes
<nt driver name> = <os2 driver name>.<device name>
For example, a valid entry using the HP LaserJet 5 printer driver would appear as HP LaserJet 5L = LASERJET.HP LaserJet 5L.
The need for the file is due to the printer driver namespace problem described in ???. For more details on OS/2 clients, please refer to ???.
缺省設置: os2 driver map = <空字符串>
注意: 默認狀況下,Samba將在本地主控瀏覽器選舉中超越全部M$操做系統而且獲勝,除非還有Windows NT4.0/2000 域控制器。這意味着Samba主機的錯誤配置將使一個子網的瀏覽無效。參見Samba docs/ 目錄中的BROWSING.txt 來獲取詳細信息。
缺省設置: os level = 20
示例: os level = 65
缺省設置: pam password change = no
缺省設置: panic action = <空字符串>
示例: panic action = "/bin/sleep 90000"
Disabling this option prevents Samba from making this check, which involves deliberatly attempting a bad logon to the remote server.
缺省設置: paranoid server security = yes
This parameter is in two parts, the backend's name, and a 'location' string that has meaning only to that particular backed. These are separated by a : character.
Available backends can include: .TP 3 * smbpasswd - The default smbpasswd backend. Takes a path to the smbpasswd file as an optional argument. .TP * tdbsam - The TDB based password storage backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb in the private dir directory. .TP * ldapsam - The LDAP based passdb backend. Takes an LDAP URL as an optional argument (defaults to ldap://localhost) LDAP connections should be secured where possible. This may be done using either Start-TLS (see ldap ssl) or by specifying ldaps:// in the URL argument. .TP * nisplussam - The NIS+ based passdb backend. Takes name NIS domain as an optional argument. Only works with sun NIS+ servers. .TP * mysql - The MySQL based passdb backend. Takes an identifier as argument. Read the Samba HOWTO Collection for configuration details. .LP
缺省設置: passdb backend = smbpasswd
示例: passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd
示例: passdb backend = ldapsam:ldaps://ldap.example.com
示例: passdb backend = mysql:my_plugin_args tdbsam
這個chat序列通常發生在特定的主機上,取決於本地口令控制的方法(就象NIS或者別的).
注意這個選項僅僅在unix password sync選項設置爲yes的時候有用。當smbpasswd文件中的SMB口令被更改時是以root身份運行的,沒必要輸入舊密碼文本. 這意味着root必須能夠在不知道用戶密碼時重置他的密碼。在NIS/YP 中這意味着passwd程序必須在NIS主控服務器上運行。
這個字符串能夠包含%n宏,用於替換新密碼。chat序列還能夠包含標準宏\\n, \\r, \\t 和\\s 來給出換行,回車,tab和空格。chat序列字符串還能夠包含'*' 來匹配任何字符序列。雙引號用來將帶空格的字符串設爲一個單獨的字符串。
若是在對話序列的任何部分發送的字符串爲一個句號".",那麼不會發送任何內容.一樣,若是等待接收部分有字符串是一個".",那麼不等待任何的內容.
若是pam password change參數設置爲yes,chat能夠以任何順序進行,沒有特定的輸出,是否成功能夠由PAM結果獲得。在PAM會話中宏\n被忽略。
參見 unix password sync, passwd program , passwd chat debug 和 pam password change.
缺省設置: passwd chat = *new*password* %n\n *new*password* %n\n *changed*
示例: passwd chat = "*Enter OLD password*" %o\n "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password changed*"
參見 passwd chat , pam password change , passwd program .
缺省設置: passwd chat debug = no
須要注意的是不少口令程序強調口令要合法,例如應該有最小長度或者是字母與數字的混合.這可能在一些客戶端(如WfWg)總將口令轉爲大寫發送時,引發一些問題.
注意若是把unix password sync選項設爲yes的話,在改變smbpasswd文件中的SMB口令時是以root身份調用改口令程序的.若是口令更改失敗的話,smbd對SMB口令的更改也會失敗,這是設計時的機制.
若是設定了unix password sync選項的話,指定口令程序時必須使用全部程序的絕對路徑,必須檢查安全問題.缺省的unix password sync選項值是 no.
參見 unix password sync.
缺省設置: passwd program = /bin/passwd
示例: passwd program = /sbin/npasswd %u
此選項定義了口令字中大寫字母的最大數量.
例如,假定給出的口令是"FRED".若是 password level設爲1的話,在"FRED"驗證失敗時會嘗試如下的口令組合:
"Fred", "fred", "fRed", "frEd","freD"
若是password level設爲2的話,就會嘗試下面的組合:
"FRed", "FrEd", "FreD", "fREd", "fReD", "frED", ..
等等。
把此選項設成的值越高,相對單一大小寫口令來講大小寫混合的口令越容易匹配。.不過,要當心使用這個選項會下降安全性,同時增長處理新聯接所花的時間量.
若是把選項設爲0時會使處理口令時只做兩種嘗試 - 先與給出的口令比較,再比較它的所有小寫形式.
缺省設置: password level = 0
示例: password level = 4
此選項設定上面所說的其它口令服務器的名字或者IP地址. 新的語法容許在鏈接到ADS realm服務器時指定端口號。要指定默認的LDAP 389端口以外的號碼,能夠將端口號放在名字或ip後面,中間用一個冒號鏈接(好比說,192.168.1.100:389)。若是你不指定一個端口,Samba將使用標準的LDAP端口tcp/389. 注意端口號在WindowsNT4.0 域或者netbios鏈接的服務器上無效
若是參數是一個名稱,它將使用 name resolve order 中指定的方式來解析。
口令服務器應該是使用"LM1.2X002"或"LM NT 0.12"協議的主機,並且它自己必須使用用戶級安全模式.
注意:使用口令服務器代表你的UNIX主機(就是運行Samba的那臺)就只與你指定的口令服務器具備相同的安全等級了.在沒有徹底信任的狀況下不要選擇使用其它的口令服務器.
不要把口令服務指向Samba服務器自己,這產生一個循環而去查找你的Samba服務器,致使死鎖.
在指定口令服務器名時能夠使用標準的替換符,而實際能用的可能只是%m這一個,這個替換符說明Samba服務器會用聯入的客戶做爲口令服務器.若是這樣用的話說明你很是信任你的客戶,同時最好以主機容許策略對他們進行限制!
若是把安全級security選項設爲domain或者ads的話,指定的其它口令服務器必須是在這個Domain中的一個主域控制器或備份域控制器或者'*'.另外指定字符'*'的話就以samba服務器會在整個域中使用加密驗證RPC調用來驗證用戶登陸.使用 security = domain的好處是,若是指定了幾個password server時,smbd 會對每個進行嘗試直到它收到迴應,對於初始服務器當機時這就頗有用了.
若是password server選項設爲字符'*'的話,samba將嘗試經過查詢WORKGROUP<1C>名字來自動查找主或者備份域控制器並聯系通過名字解析獲得的IP地址列表中的每一個服務器來進行用戶驗證.
若是服務器列表包含名字或IP同時也包含'*'時,列表將視爲首選域控制器的列表,可是也會添加一個自動的對全部其他DC的查找。Samba不會經過定位最近的DC來優化這張列表。
若是security是server的話,會有一些安全級爲security = domain時所沒有的限制:
若是在password server選項中指定了幾個口令服務器的話,smbd在聯接具體的服務器時會失敗,也不能驗證任何的用戶帳號.這是安全級爲security = server 模式時SMB/CIFS協議的一個限制,而且Samba沒法修改.
若是把Windows NT服務器做爲口令服務器,你必須確保用戶能夠從Samba服務器上進行登陸.當使用 security = server模式時,網絡登陸看起來是從那裏處理的,而不是從用戶工做站.
參見 security 選項。
缺省設置: password server = <空字符串>
示例: password server = NT-PDC, NT-BDC1, NT-BDC2, *
示例: password server = windc.mydomain.com:389 192.168.1.101 *
示例: password server = *
對於那些要對訪客提供的可打印服務來講,服務項應該設爲只讀,並且路徑應該設爲全局可寫屬性並具備粘性(s)位.這固然不是強制性的,不過不這樣作的話可能會沒法獲得你所但願的結果.
路徑出現%u的地方將以正處於聯接狀態的UNIX用戶名來替換;一樣出現%m的地方將以請求聯接的主機NetBIOS名替換.在設定僞主目錄時,這種替換項頗有用的.
所指定的路徑都是基於根目錄root dir(若是有的話)的.
缺省設置: 無
示例: path = /home/fred
缺省設置: pid directory = ${prefix}/var/locks
示例: pid directory = /var/run/
缺省設置: posix locking = yes
一個有趣的示例,用於卸載服務器資源:
postexec = /etc/umount /cdrom
參見 preexec.
缺省設置: 無 (不執行命令)
示例: postexec = echo
一個有趣的示例,在用戶每一次登陸時向對方發送一個歡迎信息:(一條格言?)
preexec = csh -c 'echo
固然,一段時間之後這類信息可能就比較討厭了:-)
參見 preexec close 和 postexec .
缺省設置: 無 (不執行命令)
示例: preexec = echo
缺省設置: preexec close = no
若是設此選項爲yes時,nmbd會在啓動時強制進行一次選舉,它有一些有利條件來贏得選舉.推薦把此選項與 domain master = yes聯合使用,這樣nmbd能夠保證成爲一個域瀏覽器.
當心使用此項,由於若是在相同的子網內有多個主機(無論是Samba服務器,Windows95仍是NT)參加選舉的話,他們每一個都會週期性不斷地嘗試成爲本地主瀏覽器,這時會形成沒必要須的廣播交通流量並下降瀏覽性能.
參見 os level.
缺省設置: preferred master = auto
注意,若是你想加載printcap裏全部的打印機,那麼用load printers會更容易.
缺省設置: no preloaded services
示例: preload = fred lp colorlp
缺省設置: preload modules =
示例: preload modules = /usr/lib/samba/passdb/mysql.so+++
缺省設置: preserve case = yes
參見NAME MANGLING段中的完整討論.
注意一個可打印的服務老是容許經過緩存打印數據的方法向服務項路徑中執行寫操做(須要用戶有可寫權限).read only選項控制只容許不可打印地訪問資源.
缺省設置: printable = no
To use the CUPS printing interface set printcap name = cups . This should be supplemented by an addtional setting printing = cups in the [global] section. printcap name = cups will use the "dummy" printcap created by CUPS, as specified in your CUPS configuration file.
在能夠用lpstat命令列出可用打印機的列表的System V系統上,能夠用printcap name = lpstat 來自動得到可用打印機列表.這對於配置samba時定義成SYSV的系統(這就包括了不少基於System V的系統)來講是缺省狀況.若是在這些系統上設好printcap name爲lpstat的話,samba就會執行lpstat -v並嘗試分析輸出信息以得到一份打印機列表.
一般最小的printcap文件看起來就象下面這樣:
print1|My Printer 1 print2|My Printer 2 print3|My Printer 3 print4|My Printer 4 print5|My Printer 5
咱們看到'|'符號用來定義打印機的別名.第二個帶有空格的別名實際上是提示Samba它是註釋.
在AIX中默認的printcap文件名是/etc/qconfig. 若是在文件名中找到qconfig字樣,Samba將假定文件是AIX 的qconfig格式。
缺省設置: printcap name = /etc/printcap
示例: printcap name = /etc/myprintcap
打印命令是一個簡單的文本字符串。它能夠在宏替換以後逐字傳遞給系統。
%s, %f - 緩衝文件名路徑
%p - 適當的打印機名
%J - 客戶提交的做業名
%c - 緩衝的做業須要打印的頁數
%z -緩衝的打印做業的大小(以字節計)
打印命令至少必須包含%s或%f替換符中的一個,而%p是個可選項.在提交打印做業時,若是不提供打印機名的話,%p替換符會從打印命令中刪掉.
若是在[global]段中指定了打印命令,它將被用於任何可打印性的服務項,而再也不須要在它們之中單獨指定了.
若是既沒有對可打印性服務項單獨指定打印命令又沒有指定一個全局的打印命令時,假脫機文件雖然會創建卻不會被處理也不會被刪除(這很重要哦).
注意在某些UNIX上以nobody帳號身份進行打印會致使失敗.若是發生了這樣的狀況請創建一個單獨的有打印權的訪客帳號並在[global]段裏設置guest account選項.
若是你明白命令是直接傳遞給shell的話,你能夠組織很是複雜的打印命令.舉例來講,下面的命令會記錄一個打印做業,打印這個文件而後刪掉它.注意這裏的';'是shell腳本命令經常使用的分隔符.
print command = echo Printing %s >> /tmp/print.log; lpr -P %p %s; rm %s
你可能必須根據平時在系統上打印文件的方式來改變這個命令.缺省狀況下,此選項會根據printing選項的設定而變化.
缺省設置: 對於 printing = BSD, AIX, QNX, LPRNG 或者 PLP :
print command = lpr -r -P%p %s
對於 printing = SYSV 或者 HPUX :
print command = lp -c -d%p %s; rm %s
對於 printing = SOFTQ :
print command = lp -d%p -s %s; rm %s
對於 printing = CUPS :
若是Samba 編譯時加入了libcups, 那麼printcap=cups將使用CUPS API來提交做業等等。不然它用-oraw選項,使用SystemV命令來打印,也就是說它會用lp -c -d%p -o raw; rm %s.當printing = cups, 而且Samba編譯時加入了libcups時,任何手工設置的打印命令將被忽略。
示例: print command = /usr/local/samba/bin/myprintscript %p %s
缺省設置: printer admin = <空字符串>
示例: printer admin = admin, @staff
若是在[global]段裏指定了打印機名稱,那麼給出的打印機就用於任何可打印性服務項而不需個別的指定打印機名稱了.
缺省設置: 空 (在不少系統中多是 lp )
示例: printer name = laserwriter
一般系統支持九種打印機風格,它們是BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, SOFTQ,還有 CUPS
要在系統上查看使用了不一樣的選項後其它打印命令的缺省值,能夠用testparm(1)程序.
此項能夠在每一臺打印機上分別設置.
參見[printers]段的討論。
Default :private dir = ${prefix}/private
When not in domain mode with winbindd then the security info copied onto the local workstation has no meaning to the logged in user (SID) on that workstation so the profile storing fails. Adding this parameter onto a share used for profile storage changes two things about the returned Windows ACL. Firstly it changes the owner and group owner of all reported files and directories to be BUILTIN\\Administrators, BUILTIN\\Users respectively (SIDs S-1-5-32-544, S-1-5-32-545). Secondly it adds an ACE entry of "Full Control" to the SID BUILTIN\\Users to every returned ACL. This will allow any Windows 2000 or XP workstation user to access the profile.
Note that if you have multiple users logging on to a workstation then in order to prevent them from being able to access each others profiles you must remove the "Bypass traverse checking" advanced user right. This will prevent access to other users profile directories as the top level profile directory (named after the user) is created by the workstation profile code and has an ACL restricting entry to the directory tree to the owning user.
缺省設置: profile acls = no
此命令應該是個只用打印機名做爲選項的程序或腳本,以便用來中止打印隊列,使打印做業再也不向打印機發送.
此命令不支持Windows for Workgroups,但能夠在Windows 95和NT的打印機窗口中發送.
此處用替換符%p能夠替代打印機名稱.不然這個名稱將被放置在命令後面.
注意,在命令中使用絕對路徑是個好習慣,由於不必定能夠得到服務器的PATH變量.
缺省設置: 依賴於 printing 選項的設置
示例: queuepause command = disable %p
此命令應該是個只用打印機名做爲選項的程序或腳本,以便用來恢復打印隊列,使打印做業繼續向打印機發送.
此命令不支持Windows for Workgroups,但能夠在Windows 95和NT的打印機窗口中發送.
此處用替換符%p能夠替代打印機名稱.不然這個名稱將被放置在命令後面.
注意,在命令中使用絕對路徑是個好習慣,由於不必定能夠得到服務器的PATH變量.
缺省設置: 依賴於 printing 選項的設置
示例: queuepause command = enable %p
缺省設置: read bmpx = no
參見 write list 和 invalid users 選項。
缺省設置: read list = <空字符串>
示例: read list = mary, @students
若是這個參數是yes, 那麼服務的用戶不能創建或修改服務目錄中的文件。
注意一個可打印的服務(printable = yes) 的目錄 老是 可寫的(須要用戶可寫權限)可是隻能經過緩衝操做來寫.
缺省設置: read only = yes
若是容許,那麼它會以65535 字節爲單位來讀取一個數據包的65535字節.這會帶來較多的性能方面的好處.
可是,有些客戶端使用不正確的包容量(雖然是可容許的),或者它們不支持大容量包,因此對這些客戶端你應該禁止這一選項.
一般將此選項做爲一種系統調試工具,並且嚴格來講不該修改.參見write raw選項.
缺省設置: read raw = yes
在磁盤與網絡的訪問速度相近時,這種交迭式的工做就會作得很是好,不過當其中一類設備的速度大大高於另外一類時,它只會有那麼一點點效果.
缺省的值是16384,但沒有作過測試最優值的實驗。根據已經瞭解的狀況來看,在使用不一樣的系統時,最優化值的差異很大.一個大於65536的值是沒有任何意義的,它只會形成沒必要要的內存分配.
缺省設置: read size = 16384
示例: read size = 8192
缺省設置: realm =
示例: realm = mysambabox.mycompany.com
若是你要samba服務器處在一個一般瀏覽傳播規則沒有正常工做的遠程工做組裏時,用此項就頗有用了.此遠程工做組能夠位於IP包到獲得的任何地方.
例如:
remote announce = 192.168.2.255/SERVERS 192.168.4.255/STAFF
以上這行說明nmbd 對兩個給出的使用工做組名的IP地址進行申明.若是你只用了IP地址的話,那麼會用workgroup選項裏給出的工做組名來替代.
你選用的IP地址一般應該是遠程網絡的廣播地址,不過也能夠用配置穩定的網絡中的已知主瀏覽器IP地址.
缺省設置: remote announce = <空字符串>
This is useful if you want your Samba server and all local clients to appear in a remote workgroup for which the normal browse propagation rules don't work. The remote workgroup can be anywhere that you can send IP packets to.
例如:
remote browse sync = 192.168.2.255 192.168.4.255
以上行會使nmbd向位於指定子網或地址中的主瀏覽器請求同步他們本地服務器中的瀏覽列表
你選用的IP地址一般應該是遠程網絡的廣播地址,不過也能夠用配置很是穩定的網絡中的已知主瀏覽器IP地址.若是給出一個主機的IP地址,或者主控瀏覽器事實上在本身的網段中, samba就不驗證遠程主機是否有效、是否正在偵聽了。
缺省設置: remote browse sync = <空字符串>
The security advantage of using restrict anonymous = 1 is dubious, as user and group list information can be obtained using other means.
The security advantage of using restrict anonymous = 2 is removed by setting guest ok = yes on any share.
缺省設置: restrict anonymous = 0
加入一個root directory,注意不是實際的"/"目錄,能夠增長額外的安全級別,可是代價就高了.這樣徹底確保了所指定的root directory及所屬子目錄外的文件都是不能訪問的,包括服務器正常運行時所需的一些文件也是如此.所以要想維護服務器總體的可操做性,你須要鏡像一些系統文件到所指定的root directory下.特別是要鏡像 /etc/passwd文件或此文件的子集,若是須要的話,任何打印操做要用到的二進制文件或配置文件也要鏡像.固然,應該由操做系統決定必須被鏡像的文件集合.
缺省設置: root directory = /
示例: root directory = /homes/smb
參見 postexec.
缺省設置: root postexec = <空字符串>
參見 preexec 和 preexec close 選項.
缺省設置: root preexec = <空字符串>
參見 preexec 和preexec close.
缺省設置: root preexec close = no
這個選項設置了「安全模式位」用於答覆協議協商以使smbd(8) 調整共享安全級是開或者關.客戶端根據此位決定是否(以及如何)向服務器傳送用戶和口令信息.
缺省值是security = user,這也是在Windows 98和Windows NT環境中最經常使用的設定.
可選的值 security = share, security = server 或者security = domain .
2.0.0版本以前的Samba中,缺省值是 security = share 主要由於當時只有這一個值可選。
在WfWg裏有一個錯誤,當在使用用戶和服務器安全級時,WfWg客戶將會徹底忽略你在"connect drive"對話框裏鍵入的口令.這就使除了在WfWg裏已登陸的用戶之外的任何人要聯接Samba服務項變得很是困難.
若是你的主機使用與UNIX主機上相同的用戶名時,就應當使用security = user.若是你用的用戶名一般在UNIX上不存在時就應該用security = share.
若是你想設置共享而不用口令的話(訪客級共享)也應該用security=share.這一般用於提供共享打印的服務器.在security=user裏設定guest賬戶很是困難,詳細的狀況請參見map to guest選項.
smbd可能會使用一種混雜模式(hybrid),這樣就能夠在不一樣的NetBIOS aliases下提供用戶和共享級的安全特性.
如今解釋各個不一樣的設定.
SECURITY = SHARE
當客戶聯接到一個共享安全級的服務器,在聯接共享資源以前無需用一個合法的用戶名和口令登陸到服務器(雖然如今的客戶端象WIN95/95及NT在與security = share 的服務器交談時都會以用戶名發送一個登陸請求,但卻沒有帶口令).相反,客戶端會在每個共享上發送認證信息(口令)以嘗試聯接到這個共享項.
注意 smbd 老是 用合法的UNIX用戶表明客戶進行操做, 即便是在 security = share 的時候.
由於在共享安全級中,客戶無需向服務器發送用戶名,因此smbd用一些技術來爲客戶決定正確的UNIX用戶帳號.
用於匹配給出客戶口令的可能的UNIX用戶名列表能夠用如下方法創建:
若是設置了guest only選項,則跳過全部其它步驟只檢查guest account用戶名.
若是經過共享鏈接請求發送一個用戶名,則此用戶名(映射後 - 參見username map)被做爲潛在用戶名加入.
若是客戶使用一個先前的 logon 請求(SessionSetup SMB調用)則在SMB中發送的用戶名將做爲潛在用戶名加入.
客戶請求的服務項名被做爲潛在用戶名加入.
客戶的NetBIOS名被做爲潛在用戶名加入到列表中.
在user列表中的任何用戶都被做爲潛在用戶名加入.
若是未設guest only選項,則使用提供的口令來嘗試此列表.對於匹配到口令的第一個用戶將做爲UNIX用戶身份使用.
若是設置了guest only選項或未檢測到用戶名,則若是共享項中標誌爲能夠使用guest account,那麼使用此訪客用戶帳號,不然拒絕訪問.
注意,在共享安全級中關於哪一個UNIX用戶名最後將在容許訪問中使用很是混淆.
參見NOTE ABOUT USERNAME/PASSWORD VALIDATION段.
SECURITY = USER 這是samba2.0/3.0缺省安全級設置.對於用戶安全級,一個客戶必須先以合法的用戶名和口令(也能夠用username map選項進程映射)「登陸」.在此安全模式中也可以使用加密口令(參見encrypted passwords選項).若是設置瞭如user和guest only這樣的選項,則它們會被應用而且在此鏈接上更改UNIX用戶帳號,但只能在用戶帳號被成功驗證以後才行.
注意,當服務器成功驗證客戶身份以前,請求的資源名稱是不發送到服務器上的.這就是爲何用戶安全級中在沒有容許服務器自動把未知用戶映射爲guest account的狀況下,訪客共享沒法工做.參見map to guest選項得到完成映射的細節.
參見NOTE ABOUT USERNAME/PASSWORD VALIDATION段.
SECURITY = DOMAIN
只有已經用 net(8)把服務器添加進一個Windows NT的域中,此安全模式才能正常工做.它要求encrypted passwords選項設爲yes.在此模式中Samba將試圖把用戶名/口令傳送到一個WindowsNT主域或備份域控制器進行驗證像一臺真正的WindowsNT服務器那樣。
注意,仍然須要存在一個和域控制器上的用戶名一致的有效的UNIX用戶,來使Samba擁有一個有效的UNIX賬戶來映射存取文件操做。
注意,對於客戶端來講,security=domain模式與security=user是同樣的.它隻影響服務器處理驗證工做的方式.對於客戶端無任何影響.
注意,當服務器成功驗證客戶身份以前,請求的資源名稱是不發送到服務器上的.這就是爲何域安全級中在沒有容許服務器自動把未知用戶映射爲guest account的狀況下,訪客共享沒法工做.參見map to guest選項得到完成映射的細節
參見 NOTE ABOUT USERNAME/PASSWORD VALIDATION 段.
參見 password server parameter 和 encrypted passwords 選項。
SECURITY = SERVER
在此模式中Samba將試圖把用戶名/口令傳送到其它SMB服務器,好比一臺NT服務器,進行驗證.若是驗證失敗則回到security = user模式,它須要encrypted passwords 參數設置爲yes,除非遠端系統不支持它們。可是要注意,若是使用了加密口令的話,samba不會再去檢查UNIX系統口令文件的,它必須有一個合法的smbpasswd文件以再次檢查用戶帳號.參見Samba HOWTO Collection 中關於User Database 的章節來得到如何設置的信息。
This mode of operation has significant pitfalls, due to the fact that is activly initiates a man-in-the-middle attack on the remote SMB server. In particular, this mode of operation can cause significant resource consuption on the PDC, as it must maintain an active connection for the duration of the user's session. Furthermore, if this connection is lost, there is no way to reestablish it, and futher authenticaions to the Samba server may fail. (From a single client, till it disconnects).
注意,對於客戶端來講,security=server模式與security=user是同樣的.它隻影響服務器處理驗證工做的方式.對於客戶端無任何影響.
注意,當服務器成功驗證客戶身份以前,請求的資源名稱是不發送到服務器上的.這就是爲何服務器安全級中在沒有容許服務器自動把未知用戶映射爲guest account的狀況下,訪客共享沒法工做.參見 map to guest選項得到完成映射的細節.
參見 NOTE ABOUT USERNAME/PASSWORD VALIDATION 段.
參見 password server parameter 和 encrypted passwords 選項。
SECURITY = ADS
In this mode, Samba will act as a domain member in an ADS realm. To operate in this mode, the machine running Samba will need to have Kerberos installed and configured and Samba will need to be joined to the ADS realm using the net utility.
Note that this mode does NOT make Samba operate as a Active Directory Domain Controller.
Read the chapter about Domain Membership in the HOWTO for details.
參見 ads server parameter, the realm paramter 和encrypted passwords 選項。
缺省設置: security = USER
示例: security = DOMAIN
此選項用掩碼值'與'實現對權限位的更改,從而防止修改未出如今此掩碼中的任何位.能夠將掩碼中的0看做用戶無權更改的位值. This parameter is applied as a mask (AND'ed with) to the changed permission bits, thus preventing any bits not in this mask from being modified. Essentially, zero bits in this mask may be treated as a set of bits the user is not allowed to change.
如未明確設定此選項,則把此選項設爲0777,容許用戶修改文件的全部user/group/world這些權限.
注意,可經過其它手段訪問到Samba服務器的用戶能夠垂手可得地繞過此限制,因此此選項只對獨立的服務器系統有用.多數普通系統的管理員能夠將它保留爲0777.
參見 force directory security mode, directory security mask, force security mode 選項.
缺省設置: security mask = 0777
示例: security mask = 0770
Please note that with this set to no you will have to apply the WindowsXP requireSignOrSeal-Registry patch found in the docs/Registry subdirectory.
缺省設置: server schannel = auto
示例: server schannel = yes
When set to auto, SMB signing is offered, but not enforced. When set to mandatory, SMB signing is required and if set to disabled, SMB signing is not offered either.
缺省設置: client signing = False
它還設置顯示在瀏覽列表中主機名後的內容.
%v 將替換爲Samba版本號
%h 將替換爲主機名
缺省設置: server string = Samba %v
示例: server string = University of GNUs Samba Server
setdir命令只在Digital Pathworks客戶端中實現.參見Pathworks文檔的細節.
缺省設置: set directory = no
缺省設置: No default value
示例: set primary group script = /usr/sbin/usermod -g '%g' '%u'
This parameter should specify the path to a script that can set quota for the specified arguments.
The specified script should take the following arguments:
1 - quota type .TP 3 * 1 - user quotas .TP * 2 - user default quotas (uid = -1) .TP * 3 - group quotas .TP * 4 - group default quotas (gid = -1) .LP
2 - id (uid for user, gid for group, -1 if N/A)
3 - quota state (0 = disable, 1 = enable, 2 = enable and enforce)
4 - block softlimit
5 - block hardlimit
6 - inode softlimit
7 - inode hardlimit
8(optional) - block size, defaults to 1024
The script should output at least one line of data.
參見 get quota command 選項。
缺省設置: set quota command =
示例: set quota command = /usr/local/sbin/set_quota
這些打開模式UNIX是不直接支持的,因此要用共享內存或在UNIX不支持共享內存時(通常都支持)用鎖定文件來模擬.
容許共享模式的選項是DENY_DOS, DENY_ALL, DENY_READ,DENY_WRITE, DENY_NONE 和DENY_FCB.
缺省狀況下此選項提供了徹底的共享兼容和許可.
你 不該 把此選項關閉由於不少Windows應用會所以中止運行。
缺省設置: share modes = yes
參見 NAME MANGLING 段.
缺省設置: short preserve case = yes
Under normal circumstances, the Windows NT/2000 client will open a handle on the printer server with OpenPrinterEx() asking for Administrator privileges. If the user does not have administrative access on the print server (i.e is not root or a member of the printer admin group), the OpenPrinterEx() call fails and the client makes another open call with a request for a lower privilege level. This should succeed, however the APW icon will not be displayed.
Disabling the show add printer wizard parameter will always cause the OpenPrinterEx() on the server to fail. Thus the APW icon will never be displayed. Note :This does not prevent the same user from having administrative privilege on an individual printer.
參見 addprinter command, deleteprinter command, printer admin
Default :show add printer wizard = yes
This command will be run as the user connected to the server.
%m %t %r %f parameters are expanded:
%m will be substituted with the shutdown message sent to the server.
%t will be substituted with the number of seconds to wait before effectively starting the shutdown procedure.
%r will be substituted with the switch -r. It means reboot after shutdown for NT.
%f will be substituted with the switch -f. It means force the shutdown even if applications do not respond for NT.
缺省設置: None.
示例: shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f
Shutdown script example:
#!/bin/bash $time=0 let "time/60" let "time++" /sbin/shutdown $3 $4 +$time $1 &
Shutdown does not return so we need to launch it in background.
參見 abort shutdown script.
缺省設置: smb passwd file = ${prefix}/private/smbpasswd
示例: smb passwd file = /etc/samba/smbpasswd
缺省設置: smb ports = 445 139
By default Samba will accept connections on any address.
示例: socket address = 192.168.2.20
套接字選項是使用在容許調整鏈接的操做系統的網絡層的控制命令.
此選項一般用於在局域網上優化調整samba服務器的性能.由於samba沒法知道與你的網絡所對應的優化選項,因此你必須本身進行試驗並做出選擇.咱們強烈推薦你先閱讀與你的操做系統有關的相應文件(也許man setsockopt會有幫助).
你可能會發如今有些系統上samba會在你使用一個選項時發出"Unknown socket option"的信息.這就說明你沒有正確拼寫或者須要爲操做系統添加一個包含文件到includes.h中.若有後面指出的問題請寫信到samba-bugs@samba.org.
只要操做系統容許,你能夠以任何方法組合任何所支持的套接字選項.
當前可用於此選項的可設置套接字選項列表有:
SO_KEEPALIVE
SO_REUSEADDR
SO_BROADCAST
TCP_NODELAY
IPTOS_LOWDELAY
IPTOS_THROUGHPUT
SO_SNDBUF *
SO_RCVBUF *
SO_SNDLOWAT *
SO_RCVLOWAT *
標有'*'的要使用一個整數參數.其它的有時使用1或0表明容許或禁止該選項,如未指定1或0則缺省值都爲容許.
要指定一個變量,用"SOME_OPTION=VALUE"格式。好比能夠是SO_SNDBUF=8192.注意,在"="先後不能有任何空格.
如在局域網上,則使用下面這個是比較明智的:
socket options = IPTOS_LOWDELAY
若有一個局域網則能夠試一下:
socket options = IPTOS_LOWDELAY TCP_NODELAY
若有一個廣域網,則試一下IPTOS_THROUGHPU.
注意有些選項可致使samba服務器徹底失效.當心使用它們!
缺省設置: socket options = TCP_NODELAY
示例: socket options = IPTOS_LOWDELAY
If the value of this parameter starts with a "|" character then Samba will treat that value as a pipe command to open and will set the environment variables from the output of the pipe.
The contents of the file or the output of the pipe should be formatted as the output of the standard Unix env(1) command. This is of the form:
Example environment entry:
SAMBA_NETBIOS_NAME = myhostname
缺省設置: No default value
Examples: source environment = |/etc/smb.conf.sh
示例: source environment = /usr/local/smb_env_vars
缺省設置: stat cache = yes
When strict allocate is no the server does sparse disk block allocation when a file is extended.
Setting this to yes can help Samba return out of quota messages on systems that are restricting the disk quota of users.
缺省設置: strict allocate = no
當禁用strict locking時,服務器只在客戶明確要求時才爲他們檢查文件鎖.
循規蹈矩的客戶老是在重要的時候要求檢查文件鎖,因此在多數狀況下strict locking = no是可取的.
缺省設置: strict locking = no
參見 sync always 選項。
缺省設置: strict sync = no
參見 strict sync 選項。
缺省設置: sync always = no
此選項設置了對syslog發送信息的閾值.只有小於此值的調試級信息號才發給syslog.
缺省設置: syslog = 1
缺省設置: syslog only = no
缺省設置: template homedir = /home/%D/%U
缺省設置: template primary group = nobody
缺省設置: template shell = /bin/false
缺省設置: time offset = 0
示例: time offset = 60
缺省設置: time server = no
缺省設置: unicode = yes
缺省設置: unix charset = UTF8
示例: unix charset = ASCII
缺省設置: unix extensions = yes
參見 passwd program, passwd chat.
缺省設置: unix password sync = no
爲了讓此選項正確工做,當它設爲yes時必須把 encrypt passwords選項設爲no .
注意即便設置了此選項,smbd仍是必須驗證用戶帳號,直到輸入合法的口令後才能正確鏈接並更新他們的散列計算(由smbpasswd完成)後的口令字.
缺省設置: update encrypted = no
The differentiating factor is that under normal circumstances, the NT/2000 client will attempt to open the network printer using MS-RPC. The problem is that because the client considers the printer to be local, it will attempt to issue the OpenPrinterEx() call requesting access rights associated with the logged on user. If the user possesses local administator rights but not root privilegde on the Samba host (often the case), the OpenPrinterEx() call will fail. The result is that the client will now display an "Access Denied; Unable to connect" message in the printer queue window (even though jobs may successfully be printed).
If this parameter is enabled for a printer, then any attempt to open the printer with the PRINTER_ACCESS_ADMINISTER right is mapped to PRINTER_ACCESS_USE instead. Thus allowing the OpenPrinterEx() call to succeed. This parameter MUST not be able enabled on a print share which has valid print driver installed on the Samba server.
參見 disable spoolss
缺省設置: use client driver = no
缺省設置: use mmap = yes
只有當主機沒法提供它本身的用戶名時才須要username選項。當用COREPLUS協議或你的用戶擁有與UNIX用戶名不一樣的WfWg用戶名時就會有這樣的狀況.在這兩種狀況下,用\serverhare%user語句代替會更好的.
在大多數狀況下username選項並非最好的解決方案,由於它意味着Samba會嘗試對username選項行中的每一個用戶名輪流做測試.這樣作是很慢的,並且萬一不少用戶重複口令的話這就是個壞主意了.錯誤使用此選項可能會帶來超時或安全缺陷.
samba依靠底層的UNIX安全.此選項不限制登陸者,它只對Samba服務器提供響應所提供口令的用戶名的線索.任何喜歡的人均可以登陸,並且若是他們只是啓動一次telnet對話的話不會形成破壞.進程以登陸的用戶身份運行,因此他們沒法作任何他們不能作的事兒.
要對一組特殊的用戶限制一個服務的話能夠用 valid users 選項.
若是任何用戶名以'@'字符開始則此用戶名將首先在NIS網絡組列表(若是Samba編譯時加入了網絡組支持的話)中進行查找,而後在UNIX用戶組數據庫中查找並展開成屬於以此名爲組的全部用戶的列表.
若是任何用戶名以'+'字符開始則此用戶名只在UNIX用戶組數據庫中進行查找並展開成屬於以此名爲組的全部用戶的列表.
若是任何用戶名以'&'字符開始則此用戶名只在NIS網絡組列表(若是Samba編譯時加入了網絡組支持的話)中進行查找並展開成屬於以此名爲組的全部用戶的列表.
注意經過用戶組數據庫進行查找要花很長時間,在此期間有些客戶可能會超時.
查看 NOTE ABOUT USERNAME/PASSWORD VALIDATION 段來得到這個選項如何決定訪問服務方面的信息。
缺省設置: 若是是guest服務就是guest賬號,不然是空字符串.
示例:username = fred, mary, jack, jane, @users, @pcgroup
若是把此選項設爲非0,則狀況就改變了.此選項指定的是用於嘗試同時檢測UNIX用戶名的大寫字母的組合數.數字越高,則嘗試的組合數越多,但用戶名的發現也越慢.當在你的UNIX主機上有奇特的用戶名如AstrangeUser 時使用此選項.
缺省設置: username level = 0
示例: username level = 5
映射文件被逐行解析.每一個行都應該在'='號左邊包含一個UNIX用戶名,而在右邊跟上一列用戶名.右邊的用戶名列表能夠包含@group形式的名稱,它表示匹配任何組中的UNIX用戶名.特殊客戶名'*'是一個通配符用於匹配任何名稱.映射文件的每一個行能夠達到1023個字符的長度.
對文件的處理是在每一個行上取得提供的用戶名並把它與'='號右邊的每一個用戶名進行比較.若是提供的名稱匹配右邊的任何名稱則用左邊的名稱替換右邊的.而後繼續處理下一行.
忽略以'#' 或 ';'號開始的行.
當在行中發現了匹配,則在以'!'開始的行後停止處理,不然繼續處理每一行的映射.當你在文件中用了通配映射的話'!'就頗有用了.
例如把名稱admin 或 administrator映射爲UNIX名 root,你能夠這樣:
root = admin administrator
或把UNIX組 system中的任何人映射爲UNIX名sys就能夠這樣:
sys = @system
能夠在一個用戶名映射文件中包含不少映射關係.
若是你的系統支持NIS NETGROUP選項,則在使用/etc/group 匹配組以前先檢查網絡組數據庫.
你能夠經過在名稱上使用雙引號來映射含有空格的Windows用戶名.例如:
tridge = "Andrew Tridgell"
將把windows用戶名"Andrew Tridgell"映射爲unix用戶名"tridge".
如下示例將把mary和fred映射爲unix用戶sys,而後把其他的映射爲guest.注意使用'!'符號能夠告訴Samba若是在該行得到一個匹配的話就中止處理.
!sys = mary fred guest = *
注意重映射做用於全部出現用戶名的地方.所以若是你鏈接到\\server\fred而 fred已被重映射爲 mary,則你實際會鏈接到\\server\mary"並須要提供mary的口令而不是 fred的.這種狀況只有一個例外,那就是用戶名是被傳到 password server(若是你有一個的話)驗證的.口令服務器會接收客戶提供的未經修改的用戶名.
同時要注意反向映射是不會出現的.這主要影響的是打印任務.已經被映射的用戶會在刪除打印任務時遇到麻煩,由於WfWg上的打印管理器會認爲他們不是打印任務的屬主.
缺省設置: no username map
示例: username map = /usr/local/samba/lib/users.map
缺省設置: use sendfile = no
缺省設置: use spnego = yes
Due to the requirements of the utmp record, we are required to create a unique identifier for the incoming user. Enabling this option creates an n^2 algorithm to find this number. This may impede performance on large installations.
參見 utmp directory 選項。
缺省設置: utmp = no
缺省設置: no utmp directory
示例: utmp directory = /var/run/utmp
This option should not be used by regular users but might be of help to developers. Samba uses this option internally to mark shares as deleted.
缺省設置: True
若是此項爲空(缺省)則任何用戶均可以登陸.若是一個用戶名同時存在於此列表及invalid users列表,則拒絕此用戶訪問.
%S 替換爲當前服務名. 這在[homes]段裏很是有用.
參見 invalid users
缺省設置: 空 (任何人都不會被拒絕)
示例: valid users = greg, @pcusers
每項必須是一個UNIX路徑,而非一個DOS路徑,同時必須不含 UNIX目錄分隔符'/'.
注意case sensitive選項適用於對文件的禁止目的.
須要明白這個選項的很重要的一個特色: 在Samba刪除一個目錄時的行爲。若是一個目錄除了veto files以外不包含任何內容,刪除操做將失敗,除非設置了delete veto files 是yes.
設置此選項會影響Samba的性能,由於它將強制在掃描全部文件和目錄時檢查是否匹配.
參見 hide files 和 case sensitive.
缺省設置: 沒有隱藏任何文件.
示例:
; 隱藏任何文件名帶有'Security'的文件, ; 任何擴展名是.tmp的文件,任何文件名帶有'root'的文件 veto files = /*Security*/*.tmp/*root*/ ; 隱藏NetAtalk服務器建立的Apple專用的文件 veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
缺省設置: 沒有隱藏oplocks許可
你可能想在已知客戶會猛烈爭奪的文件上使用此項.在NetBench SMB基準程序下面就是個好例子,它致使客戶猛烈地對以.SEM後綴的文件進行鏈接.爲使Samba不在這些文件上容許oplocks,你能夠在[global]段或特定的NetBench共享中使用此行:
示例: veto oplock files = /*.SEM/
缺省設置: no value
示例: vfs objects = extd_audit recycle
缺省設置: 共享的名稱
注意設置此選項可對服務器性能產生負面影響,由於samba必須作一些額外的系統調用以檢查那些連接.
缺省設置: wide links = yes
缺省設置: winbind cache type = 300
缺省設置: winbind enable local accounts = yes
Warning: Turning off group enumeration may cause some programs to behave oddly.
缺省設置: winbind enum groups = yes
Warning: Turning off user enumeration may cause some programs to behave oddly. For example, the finger program relies on having access to the full user list when searching for matching usernames.
缺省設置: winbind enum users = yes
The winbind gid parameter specifies the range of group ids that are allocated by the winbindd(8) daemon. This range of group ids should have no existing local or NIS groups within it as strange conflicts can occur otherwise.
缺省設置: winbind gid = <空字符串>
示例: winbind gid = 10000-20000
Please note that setting this parameter to + causes problems with group membership at least on glibc systems, as the character + is used as a special character for NIS in /etc/group.
缺省設置: winbind separator = ''
示例: winbind separator = +
缺省設置: winbind trusted domains only = <no>
The winbind gid parameter specifies the range of user ids that are allocated by the winbindd(8) daemon. This range of ids should have no existing local or NIS users within it as strange conflicts can occur otherwise.
缺省設置: winbind uid = <空字符串>
示例: winbind uid = 10000-20000
缺省設置: winbind use default domain = <no>
示例: winbind use default domain = yes
此選項以以下形式指定要調用的一個腳本名或可執行程序:
wins_hook operation name nametype ttl IP_list
第一部分參數是opration(操做符),它有三種:"add"、"delete"和"refresh".在不少狀況下該操做符能夠忽略,由於其它選項可提供足夠的信息.注意當有名稱之前沒有加入過,則有時會用到"refresh",在這種狀況下,它應該和"add"有一樣含義.
第二部分參數是netbios名.若是該名稱不是合法名的話,該功能就不運行.合法的名稱應只包含字母,數字,減號,下劃線和句點.
第三部分參數是用2位十六進制數字表示的netbios名稱類型.
第四部分參數是以秒計算的名稱有效時間TTL (time to live).
第五部分是當前該名稱所註冊的IP地址表.若是表爲空則該名稱被刪除.
一個調用BIND動態DNS更新程序nsupdate的腳本示例在samba源代碼的示例目錄能夠找到.
缺省設置: wins partners =
示例: wins partners = 192.168.0.1 172.16.1.2
缺省設置: wins proxy = no
若是你有多個子網的話,應該指定向你的WINS服務器
If you want to work in multiple namespaces, you can give every wins server a 'tag'. For each tag, only one (working) server will be queried for a name. The tag should be seperated from the ip address by a colon.
注意,若有多子網並但願跨子網瀏覽工做正常的話,應該設置Samba指向一臺WINS服務器.
缺省設置: 未啓用
示例: wins server = mary:192.9.200.1 fred:192.168.3.199 mary:192.168.2.61
For this example when querying a certain name, 192.19.200.1 will be asked first and if that doesn't respond 192.168.2.61 . If either of those doesn't know the name 192.168.3.199 will be queried.
示例: wins server = 192.9.200.1 192.168.2.61
缺省設置: wins support = no
缺省設置: 編譯時設置爲 WORKGROUP
示例: workgroup = MYGROUP
This cache allows Samba to batch client writes into a more efficient write size for RAID disks (i.e. writes may be tuned to be the RAID stripe size) and can improve performance on systems where the disk subsystem is a bottleneck but there is free memory for userspace programs.
The integer parameter specifies the size of this cache (per oplocked file) in bytes.
缺省設置: write cache size = 0
示例: write cache size = 262144
for a 256k cache size per file.
注意若是一個用戶同時屬於讀列表和寫列表則擁有寫入權.
參見 read list 選項。
缺省設置: write list = <空字符串>
示例: write list = admin, root, @staff
缺省設置: write raw = yes
參見 utmp 選項。 By default this is not set, meaning the system will use whatever utmp file the native system is set to use (usually /var/run/wtmp on Linux).
缺省設置: no wtmp directory
示例: wtmp directory = /var/log/wtmp
雖然配置文件容許服務項名包含空格,但你的客戶端軟件就不必定了.由於在比較中老是忽略空格,因此這不成問題 - 但應該認識到其它可能性.
有一條相似提示,不少客戶特別是DOS客戶,會限制服務項名爲8個字符.雖然 smbd(8)沒有這樣的限制,但若是這樣的客戶截去部分服務項名的話,他們的鏈接嘗試會失敗.爲此你可能要保持你的服務項名在8個字符之內.
對於管理員來講[homes] 和 [printers]特殊段的使用很容易,但對缺省屬性的多樣組合應該當心.當設計這些段時要特別仔細.特別是要確保假脫機目錄權限的正確性.
此手冊頁是針對samba套件版本3.0的。