samba配置檔案註釋
1、主配置檔案smb.conf。
在配置引數昌有以下幾個共性。
(1)引數配置基本採用“引數” = “值”的方式,如果引數有多個值時,多個引數之間用空格分隔。
(2)當使用使用者和組作為引數時,值為組時需在組名前加@字元。
(3)以“;”或“#”開始的是註釋行。
(4)方括號標識表示為標誌,比如[global]為全域性配置標識。
(5)一般當全域性配置與某個共享資源配置發生衝突時,共享資源配置優先。
(6)關鍵字對大小寫不敏感。
配置檔案/usr/local/samba/etc/smb.conf或/etc/samba/smb.conf內容結構
==================== Global Settings ====================
#以[global]開始,該部分主要涉及Samba服務的全域性配置。
[global]
-----------Network Related Options----------
workgroup = MYGROUP 設定Samba服務所在工作組或域的名稱,預設為MYGROUP。
server string = Samba Server Version %v 設定Samba伺服器的描述資訊,預設為Samba Server Version %v。可以使用Samba設定的變數。
netbios name =Samba Server 設定Samba伺服器NetBIOS名稱,預設使用該伺服器的DNS名稱的第一部分。
interfaces = lo eth0 192.168.10.1/24 設定伺服器監聽本地網路介面(網絡卡),使用該引數時,推薦保留lo(本地迴環地址),引數設定:網路介面名(eth0/1);IP地址。
hosts allow = 127. 192.168.10. 192.168.10.1 except 192.168.10.100 允許連線到Samba伺服器的客戶端;對應是hosts deny引數。
use sendfile =no 當設定為yes時,將直接由 kernel 讀取資料後發給客戶端,大大提高效率;預設no。
getwd cache =yes 是否啟用cache功能。預設yes。
max connectons
max open files = 16404 同一個客戶端最多能開啟的檔案數目。
deadtime = 0 設定斷開一個沒有開啟任何檔案的連結的時間,單位是分鐘,0表示無限制
keepalive = 60 伺服器每隔多少秒向客戶端傳送keepalive包用於確認客戶端是否工作正常。
time server = yes/no 設定讓nmbd成為windows客戶端的時間伺服器
guestaccount = nobody
fstype = Samba FileSystem 定義Windows客戶端顯示的檔案系統。
username map = </usr/local/samba/etc/smbusers或/etc/smaba/smbusers> 定義使用者對映關係的檔案
config file = </usr/local/samba/etc/smb.conf.%m> 使用另外的配置檔案來覆蓋預設的配置檔案
說明:
host allow = value設定
Example 1: allow all IPs in 150.203.*.*; except one
hosts allow = 150.203. EXCEPT 150.203.6.66
Example 2: allow hosts that match the given network/netmask
hosts allow = 150.203.15.0/255.255.255.0
Example 3: allow a couple of hosts
hosts allow = lapland, arvidsjaur
Example 4: allow only hosts in NIS netgroup "foonet", but deny access from one particular host
hosts allow = @foonet
hosts deny = pirate
Samba設定的變數:
變數名 |
作 用 |
變數名 |
作 用 |
%S |
當前服務名(如果存在) |
%L |
Samba伺服器的NetBIOS名 |
%P |
當前服務的根目錄(如果存在) |
%N |
NIS伺服器主機名 |
%u |
當前服務的使用者名稱(如果存在) |
%p |
NIS伺服器家目錄 |
%g |
當前使用者的初始組 |
%R |
採用協議等級 |
%U |
當前連線的使用者名稱 |
%d |
Samba服務的程序ID |
%G |
當前連線使用者的初始組 |
%a |
訪問Samba伺服器的客戶端系統 |
%D |
當前使用者所屬域或工作組名稱 |
%I |
訪問Samba伺服器的客戶端IP地址 |
%H |
當前服務使用者的家目錄 |
%M |
訪問Samba伺服器的客戶端主機名 |
%v |
Samba伺服器的版本 |
%m |
訪問Samba伺服器的客戶端NetBIOS名 |
%h |
Samba伺服器的主機名 |
%T |
Samba伺服器日期及時間 |
-----------Logging Options----------
log level = 8 設定日誌記錄等級。值越大越詳細。引數設定:0~10。
log file = /var/log/samba/log.%m 定義Samba日誌檔案的位置及名稱。預設為每一個與伺服器連線的客戶端定義一個單獨的日誌檔案。
max log size =50 設定最大的日誌檔案大小,單位為KB。
-----------Standalone Server Options----------
#使用獨立伺服器作為Samba伺服器認證使用者來源,也就是當訪問Samba伺服器時輸入的使用者名稱和密碼的驗證工作由Samba伺服器本機系統內賬戶完成。
security = user 設定安全級別,即客戶端訪問Samba伺服器的驗證方式。此部分中只能設定以下三種引數,引數設定:share(不推薦)、user、server(不推薦)。
passdb backend = tdbsam 引數設定:smbpasswd、tdbsam、ldapsam、mysql。預設為tdbsam,一般不用修改,除非想使用老版本Samba伺服器的smbpasswd檔案方式或其它方式。
encrypt passwords= yes/no 認證密碼在傳輸過程中是否加密。
引數說明:
security = share/user/server/domain/ads
以下三種安全級別用在Standalone Server Options部分,其中user級別也用於Domain Controller Options部分。
(1)share:訪問Samba伺服器共享資源時不需要輸入使用者名稱和密碼,屬於匿名訪問。
(2)user:訪問Samba伺服器共享資源時需要輸入使用者名稱和密碼,認證使用者來源為Samba伺服器本機。
(3)server:訪問Samba伺服器共享資源時需要輸入使用者名稱和密碼,認證使用者來源為另一臺Samba伺服器或Windows伺服器。
以下兩種安全級別用在Domain Members Options部分:
(4)domain:Samba伺服器在一個基於Windows NT平臺的Windows域中,訪問共享資源需要輸入使用者名稱和密碼,認證使用者來源為Windows域。
(5)ads:Samba伺服器在一個基於Windows 200X平臺的Windows活動目錄中,訪問共享資源需要輸入使用者名稱和密碼,認證使用者來源為Windows活動目錄。
passdb backend = tdbsam/smbpasswd/ldapsam/mysql
(1)tdbsam:該方式使用一個數據庫檔案來建立使用者資料庫,資料庫檔名為passdb.tdb。可以使用#smbpasswd -a [使用者名稱]來建立Samba使用者。也可以使用pdbedit命令來建立使用者。
(2)smbpasswd:該方式使用Samba提供的工具smbpasswd來給系統使用者設定一個用於訪問Samba服務的密碼,客戶端就用這個密碼訪問Samba共享資源。此方式還要使用一個 smb passwd file = /usr/local/samba/etc/smbpasswd(或/etc/samba/smbpasswd) 引數來指定儲存使用者名稱和密碼的檔案,該檔案需要手動建立。不推薦使用此方法。
(3)ldapsam:該方式基於LADP的賬戶管理方式來驗證使用者,先要建立LDAP服務。
(4)mysql:該方式是將Samba伺服器的使用者名稱和密碼儲存到MySQL資料庫中。
pdbedit命令常用引數:
pdbedit –a username:新建Samba賬戶。
pdbedit –x username:刪除Samba賬戶。
pdbedit –L:列出Samba使用者列表,讀取passdb.tdb資料庫檔案。
pdbedit –Lv:列出Samba使用者列表的詳細資訊。
pdbedit –c “[D]” –u username:暫停該Samba使用者的賬號。
pdbedit –c “[]” –u username:恢復該Samba使用者的賬號。
注意:
Standalone Server Options、Domain Members Options、Domain Controller Options三部分均與Samba的認證方式及工作角色有關,三部分均需要配置合適的security(安全級別,用於配置Samba的認證方式),此三部分為伺服器的三種角色。
-----------Domain Members Options----------
#該部分將Samba伺服器加入Windows NT平臺域或Windows 2000 Server/2003/2008活動目錄中。也就是當訪問Samba伺服器時輸入的使用者名稱和密碼的驗證工作由域控制器完成。
security = domain 在此部分中該引數只能設定為domain、ads。
passdb backend = tdbsam 預設為tdbsam,不用修改。
realm = MY_REALM
password server = <NT-Server-Name> 指定進行身份驗證的域控制器IP地址或主機名。
引數說明:
-----------Domain Controller Options----------
#該部分將Samba伺服器配置為一臺域控制器。
security = user 在此部分中該引數只能設定為user。
passdb backend = tdbsam 預設為tdbsam,一般不用修改。
domain master = yes 讓Samba成為主域控制器(PDC),在此部分中此引數必須為yes。
domain logons = yes 允許舊的Windows客戶端提交驗證資訊。
logon script = %m.bat/%u.bat 當用戶登入到域時執行的啟動指令碼,依據機器名或使用者名稱載入指令碼(相當於Windows組策略中使用者開機指令碼)。
logon path = \\%L\Profiles\%u 當用戶登入到域後的配置檔案存放的位置,用來初始化工作環境(相當於Windows中的漫遊配置檔案)。
add user script = /usr/sbin/useradd "%u" -n -g users 指定Windows與Linux中使用者資訊同步指令碼,當Windows域中新建使用者後指定指令碼會將該使用者的資訊複製到Linux中。
add group script = /usr/sbin/groupadd "%g" 指定Windows與Linux中組資訊同步指令碼,當Windows域中新建組後指定指令碼會將該組資訊複製到Linux中。
add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u" 指定Windows與Linux中計算機資訊同步指令碼,當Windows域中加入新的計算機後指定指令碼會將計算機資訊複製到Linux中。
delete user script = /usr/sbin/userdel "%u" 指定Windows與Linux中使用者資訊同步指令碼,當Windows域中刪除使用者後指定指令碼會將該使用者資訊複製到Linux中。
delete user from group script = /usr/sbin/userdel "%u" "%g" 指定Windows與Linux中使用者資訊同步指令碼,當Windows域中將使用者從組中刪除後指定指令碼會將資訊複製到Linux中。
delete group script = /usr/sbin/groupdel "%g" 指定Windows與Linux中組資訊同步指令碼,當Windows域中刪除組後指定指令碼會將該組的資訊複製到Linux中。
-----------Browser Control Options----------
#配置瀏覽伺服器
local master = yes/no 是否允許Samba伺服器作為主瀏覽伺服器。
os level = 33 該數字越大被選舉為主瀏覽伺服器的可能性越高。
preferred master = yes 當為yes時被選為主瀏覽伺服器的可能性越高。
注:
主瀏覽伺服器的功能主要是實現Windows中的網路上的芳鄰。計算機瀏覽服務是一系分部式的含有可用的網路資源列表,這些列表分佈在一些計算機上,提出瀏覽請求的計算機充當瀏覽工作站,面提供瀏覽列表的計算機充當瀏覽伺服器。該操作通過計算機從同一個子網中的主瀏覽伺服器獲得瀏覽列表副本完成。
瀏覽伺服器有域主瀏覽伺服器、主瀏覽伺服器、備份瀏覽伺服器、潛在瀏覽伺服器,非瀏覽伺服器之分。
-----------Name Resolution----------
#該部分包括Samba伺服器名稱解析方法相關配置。
wins support = yes 設定nmbd程序支援WINS伺服器。
wins server = w.x.y.z 設定WINS伺服器IP地址。
wins proxy = yes 設定Samba伺服器是否可作為WINS代理。
dns proxy = yes 設定Samba伺服器是否在無法聯絡WINS伺服器時通過DNS去解析主機的NetBIOS名。
name cache timeout = 660 設定Samba伺服器解析主機名快取的儲存時間,單位是秒;預設660。
name resolve order = lmhosts host wins bcast 設定Samba伺服器名稱解析的方法及順序。可指定一個或多個值。
引數說明:
name resolve order = lmhosts host wins bcast
(1)lmhosts:使用 /etc/samba/lmhosts檔案對NetBIOS名稱與IP地址對應關係進行解析,此方式用於解析NetBIOS名。
(2)host:使用主機名方式解析IP地址,該方式可以使用NIS、DNS及/etc/hosts檔案三種方法完成解析,這三種方式的使用順序是在/etc/nsswitch.conf檔案中hosts引數定義的。
(3)wins:使用WINS伺服器進行名稱解析,使用此方式時wins server引數必須指明WINS伺服器的IP地址。
(4)bcast:使用廣播的方式進行名稱解析。
注:
WINS代理:是為了解決跨網段的非WINS客戶端與WINS客戶端的NetBIOS名稱解析的問題。
-----------Printing Options----------
#該部分包括Samba伺服器印表機相關設定。
load printers = yes 是否自動共享印表機,而不根據[printer]標籤內的配置。
cups options = raw
printcap name = /etc/printcap 設定獲取印表機描述資訊的檔案位置。預設為/etc/printcap。
printing = cups 定義印表機的系統型別,可選項有:bsd、sysv、plp、lprng、aix、hpux、qnx、cups
-----------Filesystem Options----------
#該部分包括Samba伺服器如何保留從Windows客戶端複製或移動到Samba伺服器共享目錄檔案的Windows檔案屬性的相關配置。
map archive = no 當Windows客戶端將檔案複製或移動到Samba伺服器共享目錄時,是否保留檔案在Windows中的存檔屬性。預設yes。
map hidden = no 當Windows客戶端將檔案複製或移動到Samba伺服器共享目錄時,是否保留檔案在Windows中的隱藏檔案屬性。預設yes。
map read only = no 當Windows客戶端將檔案複製或移動到Samba伺服器共享目錄時,是否保留檔案在Windows中的只讀屬性。預設為yes。
map system = no 當Windows客戶端將檔案複製或移動到Samba伺服器共享目錄時,是否保留檔案在Windows中的系統檔案屬性。預設為no。
store dos attributes = yes 當Windows客戶端將檔案複製或移動到Samba伺服器共享目錄時,是否保留檔案在Windows中的相關屬性(只讀、系統、隱藏、存檔屬性)。預設為no。
unix charset = utf8
display charset = utf8
dos charset = utf8
注意:
設定與系統所使用的字符集相同。
-----------Performance Options----------
#伺服器效能調優
read raw = yes
write raw = yes
aio read size = 16384
aio write size = 16384
write cache size = 262144
max xmit = 65536
getwd cache = yes
strict locking = no
注:
此部分本人加入,待繼續整理……
==================== Share Definitions ====================
#該部分主要涉及Samba伺服器需要共享的資源。預設已設定使用者家目錄(從[home]標識開始)、印表機共享(從[printers]標識開始)、登入指令碼及登入域中有關使用者家目錄的配置,使用者自定義配置資訊也在此處定義。
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[printers] 共享名,即客戶端訪問Samba伺服器時瀏覽到的目錄名,該名稱不要求與本地目錄名相同,但在當前Samba伺服器必須唯一。
comment = All Printers 共享目錄的描述資訊,該引數不是必須的。
path = /var/spool/samba 需要共享的本地目錄路徑,必須使用絕對路徑。
browseable = no
guest ok = no
writable = no
printable = yes
[print$]印表機驅動
comment = Printer drivers
path = /etc/samba/drivers
browseable = yes
readonly = yes
write list = gongxiaoli
[cdrom]共享光碟機
commnet = this is cdrom
path = /mnt/cdrom
root preexec = /bin/mount -t iso9660 /dev/cdrom /mnt/cdrom 連線時用root使用者執行mount命令。
root postexec = /bin/umount /mnt/cdrom 斷開時用root使用者執行umount命令。
……
在編輯Samba主配置檔案時,smb.conf檔案中並不要求引數縮排。但推薦在編寫時對引數進行縮排,以便以後閱讀。對使用者自定義的共享資源配置內容放在smb.conf檔案的末尾,也是為了便於以後閱讀