samba配置引數詳解
samba大約超過200個配置引數.
[global]
netbios name = HARDY #設定伺服器的netbios名字
server string = my server #對samba伺服器的描述
workgroup = DEBIAN_FANS #samba伺服器屬於哪個工作組名或域名
encrypt passwords = yes #密碼需要加密
message command = /bin/sh -c 'xedit %s ; rm %s' & #當winpopup向網路使用者發訊息時,此引數可用來接收訊息,可惜沒有傳送。
security = user #用於登陸域,或使用者驗證登陸
samba 利用"remote browse sync" 來和遠端的local master browser進行資訊的同步
name resolve order = wins lmhosts hosts bcast # 解析netbios的順序 (lmhosts-lan manager file)(hosts-unix的/etc/hosts,dns,nis)(wins)(bcast,廣播)
; wins proxy = yes # 如果指定的wins伺服器在不同的網斷,就需要開啟
; dns proxy = yes # 當wins伺服器在wins中找不到名字的話,就會查詢dns.很有用哦
; admin users = hardy #samba的管理使用者,預設是root.
add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false %u #代替手工的新增計算機賬號(看pdc配置檔案),我沒有試成功。
local master = yes # 使nmbd試著在子網中成為master browse(儲存子網中所有的netbios name 所對應ip的列表)
domain master = yes # 使nmbd成為廣域網的netbios name 所對應ip的列表,任務是同步所有子網中local master的列表。因此使各終端
得到整個域的瀏覽列表,如果設定了domain logons = yes 那麼domain master預設是yes
os level = 33 #作業系統級別,winNT4.0伺服器-33 如果數值高於33,samba就成為local master browers不管網路中是否存在winNT4.0
winNT3.51伺服器-32
winNT4.0客戶機-17
winNT3.51客戶機-16
win98 - 2
win95 - 1
win3.1- 1
time server = yes # nmbd將會告知windows的客戶端自己是作為smb的時間伺服器,可以用net time /yes /set 來同步時間
domain logons = yes #設定samba為win98/95所登陸的域伺服器。
printer admin = hardy
username map = /etc/samba/smbusers #使用者別名檔案。
logon path = # 看[profiles]的說明
logon drive = Z: # 把使用者的home目錄對映成z:盤,只適用於NT,但我用XP也可以
logon home = #指定客戶端登陸的home目錄的位置,當然[homes]目錄需要定義哦,為了同時支援9x和nt登陸.該項要設定成為, 並且指定logon path =
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #據說可以提高samba效能
password server = # 其他的NT 伺服器,或samba伺服器但security=server或domain 的ntbios 名字
hosts allow = 192.168.0. #指定那些主機可以訪問
hosta deny = 192.168.8. #指定那些主機不可以訪問
interfaces = 192.168.0.100/255.255.255.0 #設定samba將對哪些網路介面進行服務。
bind interface only = yes # 如果設定成是,samba只對這幾個網路介面服務
socket address = 192.168.0.10 #強制samba只在該埠監聽
netbios aliases = yao xiao ping # 設定3個samba虛擬伺服器
include = /etc/samba/smb.conf.another #包括另外的samba配置檔案
show add printer wizard= yes # 當用戶新增印表機時,顯示安裝嚮導.
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba/%m.log #日誌檔案
max log size = 0 #日誌檔案的大小
log level = 0 # 日誌級別 0 表示沒有,3 一般比較合理
syslog = 2 # syslog的日誌級(0,err)(1,warning)(2,notice)(3,ifno)(4或以上,debug)
syslog only = yes #只使用系統日誌,關閉samba日誌
smb passwd file = /etc/samba/smbpasswd
unix password sync = yes #當用戶改變samba加密的密碼時,SAMBA會試著更新UNIX使用者密碼
passwd program = /usr/bin/passwd %u #這個就指定更改密碼的命令
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* #更改密碼時的對話
password level = "數字" 在win9x下密碼最多出現大寫字母的個數,因為9X是使用平文傳送密碼的。
null password = yes # 是否允許空密碼
pam password change = no #為samba開啟pam改變密碼控制機制的支援,
obey pam restrictions = no #當encrypt passwords = yes 時,samba 會忽略pam的驗證,因為pam不支援(挑戰/回答)驗證機制,他只用來做平文密碼的驗證。
nt acl support = yes # 允許NT使用者修改unix檔案的屬性
announce as = NT #告訴客戶端,samba是以winNT的身份來執行的
announce version = 4.0 #告訴客戶端,samba是以4.0版本來執行的
remote announce = 192.168.33.33/DEBIAN_FANS #子網和工作組,允許SAMBA和子網同步瀏覽(local master)
browse list = yes #samba將在伺服器上生成瀏覽列表
remote browse sync = 192.168.222.22 # samba 將會同步在其他子網(local master)的列表,但子網的(LOCAL MASTER)必須是SAMBA伺服器
unix realname #在客戶端是否採用unix全檔名
nis homedir = yes # SAMBA 採用NIS的/etc/nsswitch.conf 檔案,而不用/etc/passwd,來找使用者的home目錄
logon script = %U.bat #指定客戶端登陸檔名
[netlogon]
path = /home/samba/netlogon # 該目錄中存放使用者登陸指令碼(logon script = %U.bat)
writable = no
guest ok = yes
share modes = no # 開啟dos的鎖全檔案的方式,在比較繁忙的伺服器上關閉它,會提高效能。
;write list = hardy,root # 指定哪些使用者可以在該只讀共享檔案上有寫的許可權
[profiles] # 設定每個登陸使用者的環境,包括桌面的屬性,開始選單上應用程式,以及其他專案。它是儲存在伺服器的。
path = /home/samba
writable = yes #允許些操作
browsable = yes #允許該目錄被顯示在系統資源中
create mask = 0600
directory mask = 0700
[printers]
path = /var/spool/samba
guest ok = yes
browseable = yes
printable = yes
read only = yes
[cdrom]
path = /mnt/cdrom
read only = yes
gue st ok = yes
locking = no #由於是隻讀檔案
public = yes
preexec = /bin/mount /dev/cdrom #在連結共享檔案之前,要執行的命令
postexec = /bin/umount /dev/cdrom #在斷開共享檔案之前,要執行的命令 但我不知道什麼時候才算斷開。
[homes]
comment = Home
magic script = hardy.sh #當用戶開啟該共享檔案hardy.sh將被執行,結果將被重定向到客戶端
magic output = /var/log/magicoutput #指定結果輸出到該檔案
volume = user-at-home # dos的碟符卷標
read list = badguy # 限制這些使用者在可寫檔案上的些操作許可權
valid users = %S # 可登陸使用者
invalid users = root #不可登陸使用者
max connections = 0 # 最大連線數
read only = no
writable = yes
create mode = 0777
directory mode = 0775
browseable = no
[public]
path = /var/ftp
dont descend = etc bin lib # 指定這些在/var/ftp目錄下的目錄是不可訪問的。
follow symlinks = yes # 指定是否允許檔案的連結
wide links = yes # 指定是否可以連結到/var/ftp以外的檔案或目錄
hide dot files = yes # 是否隱藏點檔案
hide files = /*.java/*.cpp/ # 隱藏指定檔案
veto files = /*config/*secret/ # 完全隱藏檔案,比隱藏要強硬。重要檔案使用
delete veto files = no # 當用戶刪除有veto files的目錄時, 是否允許刪除veto files以及目錄.
delete readonly = no # 是否允許dos使用者刪除只讀檔案
security mask = 0777 # 0 表示允許修改,1 表示不允許
create mask = 0777 # 如果上面的(security mask)沒設,則按照這個模式
force security mode = 0 # 當修改檔案的屬性,指定哪些模式必須設定
force create mode = 0 # 如果上面的(force security mode)沒設,則按照這個模式
directory security mask = 0777 # 目錄,同上.
directory mask = 0777
force directory security mode = 0777
force directory mode =0777
case sensitive = no # 是否區分檔名的大小寫(windows 是不區分的)
default case = upper/lower #設定預設的是大寫還是小寫
preserve case = yes #不進行大小寫的轉換,不轉換成預設(default case)
short preserve case = yes #將檔名轉成8.3的dos端檔名
locking = yes #由於檔案只能同時被開啟一次,當檔案開啟時,samba會自動讓其他訪問守候,為了檔案不被破壞
oplocks = no #本地快取,如果設定成yes,會提高samba的速度,據說在linux-2.5以前的版本有bug,所以在2.4中還是設定成no
level2 oplocks = no # 同上
變數替換 VARIABLESUBSTITUTIONS
在配置檔案中可以用很多字串進行替換.例如,當用戶以john的名稱建立連線後,選項"path = %u"就被解釋成"path =
/tmp/john".
這些置換會在後面的描述中說明,這裡說明一些可以用在任何地方的通用置換.它們是:
%U 對話使用者名稱(客戶端想要的使用者名稱不一定與取得的一致.)
%G %U的使用者組名
%h 執行Samba的主機的internet主機名
%m 客戶機的NetBIOS名(非常有用)
%L 伺服器的NetBIOS名.這使得你可以根據呼叫的客戶端來改變你的配置,這樣你的伺服器就可以擁有"雙重個性".
Note that this parameter is not available when Samba listens on
port 445, as clients no longer send this information
%M 客戶端的internet主機名
%R 協議協商後選擇的協議,它可以是CORE,COREPLUS,LANMAN1,LANMAN2或NT1中的一種.
%d 當前samba伺服器的程序號.
%a 遠端主機的結構.現在只能認出來某些型別,並且不是100%可靠.目前支援的有Samba、WfWg、WinNT和Win95.任何其他的都被認作"UNKNOWN".如果出現錯誤就給samba-
發一個3級的日誌以便修復這個bug.
%I 客戶機的IP地址.
%T 當前的日期和時間.
%D Name of the domain or workgroup of the current user.
%$(envvar)
The value of the environment variable envar.
The following substitutes apply only to some configuration options(only
those that are used when a connection has been established):
%S 當前服務名
%P 當前服務的根目錄
%u 當前服務的使用者名稱
%g %u的使用者組名
%H %u所表示的使用者的宿主目錄
%N tNIS伺服器的名字.它從auto.map獲得.如果沒有用--with-auto-
mount選項編譯samba,那麼它的值和%L相同.
%p 使用者宿主目錄的路徑.它由NIS的auot.map得到.NIS的auot.map入口項被分為"%N:%p".
靈活運用這些置換和其他的smb.conf選項可以做出非常有創造性的事情來.