電腦店訊
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.
【相關文章】
修改配置文件
[root@linux-zlg home]# cd /etc/samba
[root@linux-zlg samba]# vi smb.conf
^^^^^^^^^^^^^^^^^^^^^^內容如下^^^^^^^^^^^^^^^^^^^^^^
[global]
workgroup = MYGROUP 建議設置為同windows一樣的工作組名如workgroup
server string = Samba Server 網上鄰居訪問時備注注信息中可以看到
; hosts allow = 192.168.1. 192.168.2. 127. 允許訪問的網絡或主機地址
printcap name = /etc/printcap
load printers = yes 自動加載打印機列表
printing = cups 打印系統名稱
; guest account = pcguest 如不設,則默認匿名帳號為nobody
log file = /var/log/samba/%m.log
max log size = 0 0為不限制,如指定,則單位為KB。
security = user 安全級別:share/user/server/domain後兩種需指定驗證的服務器
# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# or to auto-locate the domain controller/s
# password server = *
; password server = <NT-Server-Name> 安全級別的後兩種需要的驗證服務器
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
pam password change = yes
# Unix users can map to different SMB User names
; username map = /etc/samba/smbusers Windows和Linux之間的用戶映射文件
; include = /etc/samba/smb.conf.%m
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 定義網絡socket 方面的一些參數,能實現更好的文件傳輸效率。
; interfaces = 192.168.12.2/24 192.168.13.2/24 指定samba使用的網絡接口,多個網絡接口可用
; local master = no 是否允許nmbd守護進程成為局域網中的主浏覽器
#================= Share Definitions ================
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S 表與共享名同名的用戶。如多個用戶則空格分開,組群名前加@
create mode = 0664 設置新文件權限
directory mode = 0775 設置新目錄權限
[printers] 打印共享定義
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
[sharedoc]
comment = share test
path = /home/sharedoc
; valid users = mary fred
public = no
writable = yes
; printable = no
; create mask = 0765
[pub]
comment = public folder
path = /home/pub
public = yes
writable = yes
; printable = no
; create mask = 0765
^^^^^^^^^^^^^^^^^^^^^內容完畢^^^^^^^^^^^^^^^^^^^^^^^^^^
[root@linux-zlg samba]# service smb restart
[root@linux-zlg samba]# service smb reload 修改了smb.conf後,可用此命令重新載入配置文件
[root@linux-zlg root]# smbclient -L localhost 查看本機的共享
added interface ip=192.168.80.10 bcast=192.168.80.255 nmask=255.255.255.0
added interface ip=192.168.0.10 bcast=192.168.0.255 nmask=255.255.255.0
Password: 直接回車
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.7a]
……
==========================================================
建立samba用戶
當安全級別為用戶模式時,需要創建samba用戶。
1、如需要把user1加入到samba用戶中,可用以下命令:
[root@linux-zlg root]# smbadduser user1:user1 後面的user1為在windows中進行訪問時輸入的用戶名,不一定在windows系統中存在。但在linux中的user1用戶必須已存在。
ERROR: user1 is already in /etc/samba/smbpasswd SKIPPING...
[root@linux-zlg root]# smbpasswd user1 修改samba用戶的口令
2、也可使用mksmbpasswd.sh腳本文件一次性把linux系統用戶全部加入到samba用戶中:
[root@linux-zlg root]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
其它
[root@linux-zlg root]# chkconfig --level 35 smb on 設置開機自動啟動服務
[root@linux-zlg root]# smbstatus 查看當前訪問狀態
[root@linux-zlg root]# testparm 檢查smb.conf中的語法有無錯誤
Load smb config files from /etc/samba/smb.conf
[root@linux-zlg root]# testparm /etc/samba/smb.conf lgxh 192.168.80.1 查看允許客戶端訪問的資源
[共享名]
comment = 任意字符串
說明:comment是對該共享的描述,可以是任意字符串。
path = 共享目錄路徑
說明:path用來指定共享目錄的路徑。可以用%u、%m這樣的宏來代替路徑裡的unix用戶和客戶機的Netbios名,用宏表示主要用於[homes]共享域。例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/下為每個Linux用戶以他的用戶名建個目錄,作為他的共享目錄,這樣path就可以寫成:path = /home/share/%u; 。用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網絡路徑。同樣,如果我們不是以用戶來劃分目錄,而是以客戶機來劃分目錄,為網絡上每台可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,就可以這樣寫:path = /home/share/%m 。
browseable = yes/no
說明:browseable用來指定該共享是否可以浏覽。
writable = yes/no
說明:writable用來指定該共享路徑是否可寫。
available = yes/no
說明:available用來指定該共享資源是否可用。
admin users = 該共享的管理者
說明:admin users用來指定該共享的管理員(對該共享具有完全控制權限)。在samba 3.0中,如果用戶驗證方式設置成“security=share”時,此項無效。
例如:admin users =bobyuan,jane(多個用戶中間用逗號隔開)。
valid users = 允許訪問該共享的用戶
說明:valid users用來指定允許訪問該共享資源的用戶。
例如:valid users = bobyuan,@bob,@tech(多個用戶或者組中間用逗號隔開,如果要加入一個組就用“@+組名”表示。)
invalid users = 禁止訪問該共享的用戶
說明:invalid users用來指定不允許訪問該共享資源的用戶。
例如:invalid users = root,@bob(多個用戶或者組中間用逗號隔開。)
write list = 允許寫入該共享的用戶
說明:write list用來指定可以在該共享下寫入文件的用戶。
例如:write list = bobyuan,@bob
public = yes/no
說明:public用來指定該共享是否允許guest賬戶訪問。
guest ok = yes/no
說明:意義同“public”。