1. 程式人生 > >samba配置引數詳解

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          #用於登陸域,或使用者驗證登陸

    wins support = yes       #設定本地為wins伺服器,當WINS SERVER沒有啟動,SAMBA利用廣播來進行名字解析,而WINS SERVER是通過udp協議來進行包的傳送和不同網路中的路由.因此在不同的網路中進行NETbios解析,要開啟wins server.
    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 server = 192.168.0.22 # 指定wins伺服器的網路地址
  ; 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配置檔案),我沒有試成功。
    prefered master = yes    # 強制使samba成為local master
    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選項可以做出非常有創造性的事情來.