閱讀提示:在Linux下可以通過Samba客戶端訪問局域網內的Windows主機,也可以通過Samba服務器給Windows主機提供文件、打印機等服務。
Samba 使用/etc/samba/smb.conf 作為他的的主配置文件,直接修改並不直接生效,直到你在使用了#service sma restart 命令重啟Samba服務之後才會生效。
Samba 使用/etc/samba/smb.conf 作為他的的主配置文件,直接修改並不直接生效,直到你在使用了
#service sma restart
命令重啟Samba服務之後才會生效。下面是smb.conf 文件的幾個有用參數:
workgroup = WORKGROUP-NAME ##############設置加入工作組名稱
server string = BRIEF COMMENT ABOUT SERVER ##############此選項是可選的,主要作用是Samba服務Windows系統注釋。
Host allow = 192.168.1. 192.168.2. 127. ##############此項對安全性非常重要。它嚴格限制了可訪問Samba 的范圍。默認是允許所有IP訪問……
Printcap name = /etc/printcap ############設置打印機配置文件路徑
Load printers = yes #########是否將打印機共享
Printing = cups #################打印機的類型。若用的打印機的是linux標准類型的則不要更改
Guest account = pcguest ##################如果想讓用戶`pcguest`以匿名用戶身份登陸……;就去掉前面的注釋。並確保在/etc/passwd中有此用戶。這裡的pcguest可以根據需要改成用戶自己設置的本地用戶。
Loginfile = /var/log/samba/%m.log ####################log會在此目錄中為每個登陸用戶(Samba用戶)建立不同的日志文件。
Passwd Server = ##################密碼驗證服務器。當用戶從Windows通過Samba使用linux時。全自動傳送登陸windows時的用戶名與密碼給Samba.然後Samba向windows server驗證這兩項信息是否正確。若不正確,則會出現對話框要用戶重新輸入用戶名與密碼。而這個密碼服務器可以是NT SERVER(通常是主域控制器)或是另一個Samba Server. 因此若Security = share,則要刪除關於密碼服務器的那一行。
Password Level -= 8 ##########################密碼級別設置
Encrypt password = yes ##############用戶密碼要加密。由於現在98/NT 皆用加密的密碼。因此要有這一項,當然也可以要求使用不加密的密碼。
Smb Passwd file = /etc/samba/smbpasswd ############將密碼驗證服務器,設置為Samba server時,需要用此行來指定要驗證的密碼文件,這最重要的是密碼文件設置的路徑。
Uin passwd sync = yes
Passwd program = /usr/bin/passwd %u ##############接下來的兩行設置用來容許WIN密碼改變後可更新linux系統的密碼,確定`encrypt passwords`和`smb passwd file `項被啟用。
Pam password change = yes ##############當用戶要求更改密碼時,使用PAM.不用本地口令程序/user/bin/passwd
Username map = /etc/samba/smbusers ##############在此文件中設置對應的用戶名稱,例如:root=administrator admin 等,如果每個windows用戶在samba服務器中都有賬號,則可以不設置,
Include = /etc/samba/smb.conf %m ##############此行允許用戶自定義每台計算機的基本配置文件,%M代表NETBIOS正在連接的計算機的稱。
Obey pam restrictions = yew ##############當用戶認證時,服從PAM的管理限制。
Socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ##############設置服務器和客戶之間會話的Socket選項,此項設置將優化傳輸速度。
Interfaces = 192.168.12.2/24 192.168.13.2/24 ##############如果用多網絡界面須在此列出。
Remote browse sync = 192.168.3.25 192.168.2.255 ##############本行和下一行是遠程浏覽設置
Remote announce = 192.168.1.255 192.168.2.44
# Browser Control Options 浏覽控制選項
local master = no
oslevel = 33
domain master = yes
preferred master = yes
domain logons = yes
logon script = %M.bat ##############本行和下一行設置登陸腳本
logon script = %U.bat
wins support = yes ##############wins server支持
wins server = w.x.y.z ##############wins 客戶端設置
wins proxy = yes ##############wins proxy 設置
dns proxy = no ##############dns proxy設置,默認是不為客戶端做DNS查詢的
[homes] ##############用戶訪問自己目錄的設置
browseable = no ##############用戶私人目錄,不需要給別人浏覽
writeable = yes ##############用戶寫入自己目錄的權限
[netlogon]
guest ok = yes
share modes = no
[profiles] ##############默認profiles設置
[printer] ##############打印機設置
path = /var/spool/samba ##############打印機池(spool)用戶須自創建目錄
browseable = no ##############此行存放打印機的臨時文件
set public = yes to allow user `guest prinr ##############如果設置,則允許guest用戶使用打印機
printable = yes ##############用戶是否可以打印
[temp]
read only = no ##############是否只讀或可寫入
public = yes ##############是否共享
配置share級別的服務器
workgroup = linux
hosts allow = 192.168.1. ##############如不想限制可注釋掉
printcap = /etc/printcap
load printers = yes
printers = lprng
guest account = abc ##############這需要指定一個用戶帳號abc是samba中已存在的一個用戶帳號
logfiles = /var/log/samba/%m.log
maxlog size = 50
security = share
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF =8192
##注:其它可能以按smb.conf默認設置
##重啟服務
測試samba命令testparm
======================================================================
配置USER 級別的服務器
在share級的基礎配置上修改:
security = user
添加:
guest account = zjz
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd ##############當配置文件/etc/smb.conf進行user級的設置後需要設置samba密碼文件。建立smbpasswd帳號和口令。使其與/etc/passwd的帳號和口令相同
方法如下:
1:建立本地帳號,生成口令文件夾/etc/passwd,把/etc/passwd裡的用戶都加到/etc/samba/smppassword文件中
注意:該過程是先在本地建立帳號和密碼,然後再把口令文件傳給/etc/samba/smbpasswd,順序不能相反。因本地帳號的口令和samba服務器中的帳號的口令是不相同的。
#adduser zjz
#passwd zjz
#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
這裡的`/etc/samba/smbpasswd和smbpassspwd和smbpasswd file = /etc/samba/smbpasswd`r 路徑要相同。
2:利用smbpasswd命令來為剛才建立的帳號設立samba server 口令。
注意:使用smbpasswd 命令修改用戶口令時。被修改的samba帳號的本地系統用戶帳號須已經存在。
#smbpasswd zjz
重啟samba服務。USER級服務器配置完畢。
注意:如果不能實現WIN計算機和Samba資源互訪。可以在各自的主機中添加對方的主機名和IP地址,然後再測試:方法如下:
在linux系統/etc/hosts中添加:win-IP Win hostname (192.168.0.11 mywinpc)
在windows系統c:\windows\hosts中添加:win-IP Win—hostname
配置Server級服務器
server級的安全性比USER級更高。在suer級配置的基礎上修改:
security = server
添加:
password server = libtserver ##############密碼服務器,這裡是用win2k主域控制器libserver“來做密碼服務器。當然也可以用另一個samba server來做密碼服務器。
注釋掉smbpasswd file = /etc/samba/smbpasswd
設置完後,用testparm和smbclient命令進行調試。這樣當一台win NT/98計算機登陸libserver域服務器時,同時也登陸了Samba Server 上。不過這時的用戶帳號和密碼在libserver和Samba server 上應該是相同的。如果是已經加入的libserver主域控制器的計算機就可以輸入用戶帳號和密碼來打開Samba Server 的共享文件。其它計算機雖然也和samba server 在同一個網段上,但如果不用libtserver和samba server 共有的用戶帳戶和密碼登陸。就不能訪問samba.