linux下的samba伺服器配置檔案詳解 smb.conf
workgroup = mygroup//此項表示在windows作業系統中的“網路上的芳鄰”将會出現的samba伺服器所屬群組,預設mygroup,不區分大小寫。
serverstring = samba server
//此項表示在windows用戶端啟動samba伺服器的内容視窗後,所顯示的說明。
;hosts allow = 192.168.1. 192.168.2. 127.
//此項在默然情況下的配置下不使用,它可以用來設定區域網路中容許通路samba伺服器的主機、子網或者是網域。如果超過一個必須用逗号隔開。
例子:
hostsallow=172.17.2.except172.17.2.50
表示容許來自172.17.2.*.*的主機連接配接,但排除172.17.2.50
hostsallow=172.17.2.0/255.255.0.0
表示容許來自172.17.2.0子網中的所有主機連接配接
hosts allow=m1,m2
表示容許來自m1和m2兩台計算機連接配接
hosts allow=@xq
表示容許來自xq網域的所有計算機連接配接
printcap name = /etc/printcap
//此項是用來設定開機時自動加載的列印機配置檔案名稱和路徑
loadprinters = yes
//表示是否容許列印機中的所有列印機,在開機時自動加載浏覽清單,以支援用戶端的浏覽功能
printing = cups
//此項用來指定列印系統的類型
; guest account = pcguest
//此項預設不使用,它是用來設定guest帳号名
log file = /var/log/samba/%m.log
//此項可為所有連接配接到samba伺服器的計算機建立個别的記錄日志
max log size = 0
//此項可以設定每個記錄日志大小的上限,機關是kb
security = user
//指定samba伺服器使用的安全性等級
;password server =<nt-server-name>
//此項功能在預設的配置下不使用,而且隻有在上個選項設定為“security=server”時才生效,它是用來指定密碼服務的名稱,是以要使用netbios名稱,也可以使用“passwordserver=*”的方式來自動尋找可用的域控制器
; password level = 8
//這個選項是為了避免samba伺服器和用戶端之間容許密碼大寫位數不同而産生的錯誤
; username level = 8
//這個選項是為了避免samba伺服器和用戶端之間容許帳号大寫位數不同而産生的錯誤
encrypt passwords = yes
//此項表示是否指定使用者密碼以加密的形态發送到samba伺服器
smb passwd file = /etc/samba/smbpasswd
//samba伺服器使用的密碼檔案路徑
;ssl ca certfile =/usr/share/ssl/certs/ca-bundle.crt
//它用來指定包含所有受信任ca名稱的檔案
unix password sync = yes
// 此項是用來把samba密碼檔案中的加密内容修改時,可以使用此選項進行同步
passwd program = /usr/bin/passwd %u
//此項用來指定設定unix帳号密碼的程式,其中%u表示使用者名稱
passwd chat = *new*password* %n\n *retype*new*password* %n\n*passwd:*all*authentication*tokens*updated*successfully*
//此項用來設定使用者在進行linux密碼轉換成samba伺服器密碼時,螢幕出現的訓示字元串,以及與使用者産生互動視窗
pampassword change = yes
//此項表示可以使用pam來修改smb用戶端的密碼,而不使用“passwd program”選項中指定的程式
; username map = /etc/samba/smbusers
//此選項指定一個配置檔案,在此檔案中包含用戶端與服務端上的使用者對應資料
;include = /etc/samba/smb.conf.%m
//此選項容許samba伺服器使用其他的配置檔案
; obey pam restrictions = yes
//此項可以決定是否采用pam帳号及會話管理的指令
socket options = tcp_nodelay so_rcvbuf=8192so_sndbuf=8192
//這個選項在編寫tcp/ip程式時相當重要,因為可以借此調整samba伺服器運作時的效率
;interfaces = 192.168.12.2/24 192.168.13.2/24
//此項可以使samba伺服器監視多個往來接口,如果伺服器上有多張網卡應該配置此項
在配置時可以寫成:
interfaces =eth0
interfaces =172.17.4.150
;remote announce = 192.168.1.255 192.168.2.44
//此項容許nmbd定期公布samba伺服器的ip位址和群組名稱到遠端的網絡或主機
#========== share definitions ===============
[homes]//使用者個日的主目錄設定内容
comment = homedirectories //主目錄注釋
browseable =no //是否容許其他使用者浏覽個人主目錄
writable =yes//是否容許寫入個人目錄
valid users =%s //容許登陸的使用者,%s表示目前登陸的使用者
create mode =0664//建立檔案的預設權限
directory mode =0775 //建立目錄的預設權限
; map to guest = baduser
//當使用者輸入不正确的帳号和密碼時,可以利用“map toguest”選項來設定處理的方式,但是必須把前面的“security”選項設為“user”“server”“domain”
設定項
說明
user
拒絕通路
server
如果帳号正确,但密碼錯誤,容許以guest登陸
domain
如果帳号和密碼都錯誤,還是容許以guest登陸
;[netlogon]//登陸網域時的“netlogon”目錄設定内容
;comment = network logonservice//主目錄注釋
;path =/usr/local/samba/lib/netlogon//實際通路資源的本機路徑
;guest ok =yes//連接配接時是否需要密碼
;writable =no//是否容許寫入此目錄
;share modes =no//是否容許目錄中的檔案在不同的使用者之間共享
;[profiles]//使用者配置檔案目錄設定内容
;path =/usr/local/samba/profiles//實際通路資源的本機路徑
;browseable =no//是否容許浏覽此主目錄
[printers]//設定列印機環境内容
comment = allprinters //列印機注解
path =/var/spool/samba //列印隊列路徑
public=yes //是否容許guest列印
browseable =no //是否容許浏覽列印機内的暫時存盤内容
guest ok =no //連接配接時是否不需要密碼
writable =no//是否容許寫入此
samba的主配置檔案。但所包含的内容并不是很全,詳見man smb.conf
所有以;或#開頭的行為注釋行,将被忽略掉。在這個例子中我們使用;表示可以由你來修改或設定的部分,而#則表示真正意義上的注釋。
注意:不論你何時何地修改了這個檔案,你都應運作一下指令“testparm“來測試你是否犯了一些基本文法的錯誤。
1、全局設定
[global]
# workgroup = nt-domain-name or workgroup-name
workgroup = mygroup
下面的這句話是後加的,加入的意義為:使win使用者可以看到主機的名字,但我将此行注釋掉後,沒看到什麼影響。
netbios name = express
下面設定的是伺服器的字元串,相當于nt中的計算機說明部分
server string = samba server
下面的選項對于安全性很重要。他允許你對是否可以進行本地網絡連接配接的機器進行了限制。
hosts allow = 192.168.1.50 192.168.1.43 192.168.1.44 192.168.1.45192.168.1.46 192.168.1.47 192.168.1.48 192.168.1.49
如果想要自動共享列印機而不是個别地進行單獨設定,使用下面的選項:
load printers = yes
除非你是非标準的,否則下面的選項對于你說清楚列印系統的類型并不是很必要。目前支援的列印系統主要有以下幾類:
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
如果想要一個guest賬号的話就不用注釋下面的行。你必須把這個加入到/etc/passwd中,否則使用者“nobody“會被使用。
下面的選項告訴samba對不同的機器連接配接使用不同的日志檔案。小心如果你允許通路的機器太多的話,檔案可能極多喲!!!:)
設定log檔案的大小(kb)(# put a capping on the size of the log files (inkb).)
安全格式。大多數使用者使用使用者級安全。詳見security_level.txt。
security = share
使用密碼服務選項,僅用于security = server模式
參數清單可以包括:
# password server = my_pdc_name [my_bdc_name][my_next_bdc_name]
# 或自動查找域控制器
# password server = *
; password server =<nt-server-name>
對于所有的上面和下面的組成部分的_n_characters密碼所允許的比對級别
你可能想使用密碼編碼。見在samba文檔中的encryption.txt, win95.txt和winnt.txt。
除非你已經仔細的讀過了那些文檔,否則不要激活下面的選項:
當samba被建成為支援ssl的模式時,下面需要從大量的假的錯誤中保持smbclient。(原文如下:
# the following is needed to keep smbclient from spouting spuriouserrors
# when samba is built with support for ssl.
; ssl ca certfile = /usr/share/ssl/certs/ca-bundle.crt
下面的選項需要允許從windows對linux系統的密碼進行修改。
# 注意:上面帶有'encrypt passwords' 和'smb passwd file'選項使用這些。
# 另: 如果僅是允許工作站改變加密的smb密碼那麼你不需要這些。它們允許unix密碼與smb密碼保持同步。
你可以使用pam的密碼改變控制标記。如果激活的活,當一個smb用戶端請求代替了在密碼程式清單時,pam将用于密碼改變。對于大多數的設定,不改變密碼字元參數而激活這個也是可能的。
pam password change = yes
unix使用者可能映射不同的smb使用者名。
username map = /etc/samba/smbusers
在每一台機器的基礎上,使用下面的行可以使你定制你的配置。%m以連接配接機器的netbios名代替。
; include = /etc/samba/smb.conf.%m
這個參數控制samba是否服從于pam賬号和對話管理訓示。預設情況下是使用pam僅清除文本證明且忽略任何的賬号或對話管理。注意:當加密密碼=yes時,samba總是忽略pam的證明。
obey pam restrictions = yes
很多人都會發現這個選項優化了性能。詳見speed.txt和幫助手冊頁。
socket options = tcp_nodelay so_rcvbuf=8192 so_sndbuf=8192
配置samba使用多重接口。
如果你有多個網絡接口的話,必須把他們在下面列出來。詳見man。
; interfaces = 192.168.12.2/24 192.168.13.2/24
配置請求播出同步到遠端浏覽器,或從一個主機同步浏覽器清單或從/到整個子網(如下)。
; remote browse sync = 192.168.3.25 192.168.5.255
使主機将自己廣播到本地的子網。
; remote announce = 192.168.1.255 192.168.2.44
浏覽器控件選項:
如果你不想讓你的samba在你的網絡中變成一個主浏覽器,那麼設定local master為no,否則将采用正常的規則。
; local master = no
os level決定在主浏覽器的中被提取的優先級。預設值是很合理的。
; os level = 33
域master指定samba是域主浏覽器。這允許samba在子網之間比較浏覽清單。如果你已經有了一個winnt的主域控制器的話,就不要設定這個選項。
; domain master = yes
首選master使samba在啟動時拒絕一個本地浏覽器的選出,且給他一些小的較高的機會讓其來選出。
; preferred master = yes
如果你要samba成為win95工作站的域登入伺服器的話則激活它。
; domain logons = yes
如果你激活了domain logons,那麼你可以讓每一台機器或每一個使用者登入角本運作一個指定的登入批處理檔案。原文如下:if youenable domain logons then you may want a per-machine or per userlogon script run a specific logon batch file per workstation(machine)
; logon script = %m.bat
每一個使用者名都運作一個指定的登入批處理檔案
; logon script = %u.bat
# 存儲動态的profile(僅針對95與nt)
# %l 代表netbios name, %u 是一個使用者名
# 不能注釋掉下面的[profiles]共享。
; logon path = \%l\profiles\%u
支援wins部分:告訴samba元件的nmbd去激活wins服務。
; wins support = yes
wins伺服器-告訴samba元件的nmbd成為一個wins用戶端。
注意:samba即可以是一個wins伺服器,也可以是一個用戶端,或都不是。
; wins server = w.x.y.z
wins代理-原文如下,沒法翻譯(tells samba to answer name resolution queries onbehalf of a non wins capableclient,),執行這件事必須要求在網絡中至少有一個wins伺服器。預設情況下是no。
; wins proxy = yes
# dns proxy –告訴samba是否經過dns的nslookup試着去解析netbios名。1.9.17的内置預設值是yes,目前已經改為1.9.18的no。
dns proxy = no
執行個體儲存可以很簡潔-系統預設值是_no_
注意:可以在每一個共享基礎上設定
; preserve case = no
; short preserve case = no
預設執行個體是對于所有的dos檔案都大寫
; default case = lower
對于此選項要很小心-它可能帶來一些想不到的事情。
; case sensitive = no
[homes]
comment = home directories
browseable = no
writable = yes
valid users = %s
create mode = 0664
directory mode = 0775
如果不想要samba不承認已經映射為guest的使用者,可用如下設定
; map to guest = bad user
如果想建立netlogon目錄給域登入,不要注釋下面的内容。
; [netlogon]
; comment = network logon service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
想提供一個指定的不固定的共享profile那麼就不要注釋下面的内容,預設使用使用者主目錄。
;[profiles]
; path = /usr/local/samba/profiles
; browseable = no
注意:如果你有一個bsd風格的列印系統,則沒有必須單獨的特别指定每一個列印機。
[printers]
comment = all printers
path = /var/spool/samba
設定public=yes表示允許’guest account’列印
guest ok = no
writable = no
printable = yes
下面的内容對人們共享檔案是有用的。
;[tmp]
; comment = temporary file space
; path = /tmp
; read only = no
; public = yes
公用的可通路的目錄,除了在staff組中的成員外,對其它人為隻讀
;[public]
; comment = public stuff
; path = /home/nw
; writable = yes
; printable = no
; write list = @staff
私有列印機,僅僅fred本人可用。列印池中的資料将被放到fred的主目錄中。注意:fred使用者無論在什麼地方都必須對列印池有寫通路的權限。
;[fredsprn]
; comment = fred's printer
; valid users = fred
; path = /home/fred
; printer = freds_printer
; public = no
; printable = yes
私有目錄,僅能對fred開放。注意fred對這個目錄需要寫通路的權限。
;[fredsdir]
; comment = fred's service
; path = /usr/somewhere/private
允許你制作配置檔案去引入的連接配接到這裡的每一台機器都有不同的目錄的服務。
使用%u選去配置使用者名,%m代替連接配接到的機器名。
;[pchome]
; comment = pc directories
; path = /usr/local/pc/%m
公共可通路的目錄,對所有的使用者都可讀/寫。注意:在這個目錄中的所有由使用者建立的檔案都會被辨別成預設使用者所有。是以有通路僅限的使用者可以删除别的使用者的檔案。很明顯這個目錄必須是可以被預設使用者寫的。另一個使用者當然可以指定,這樣所有的檔案都将被那個使用者所替代。
[public]
path = /tmp/aaaa
public = yes
guest ok = yes
printable = no
下面的兩個例子是怎樣共享一個目錄給兩個使用者,在這個共享目錄中他們可以放置檔案且分别屬于各自所有。在這個設定中,目錄将可以被兩個使用者同時使用且在其上有粘滞位保護。很明顯,可以擴充為多個使用者的情況。
;[myshare]
; comment = mary's and fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; create mask = 0765
以下是個人實際的設定
[sharedir]
path = /home/nw